Compare commits
	
		
			188 Commits
		
	
	
		
			vtx-0-2-21
			...
			mesa_3_2_b
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					1b539ed613 | ||
| 
						 | 
					905ad56487 | ||
| 
						 | 
					a16ebe76c9 | ||
| 
						 | 
					96563ae75f | ||
| 
						 | 
					11769b9737 | ||
| 
						 | 
					474363af47 | ||
| 
						 | 
					99189ad4fb | ||
| 
						 | 
					361fc66e36 | ||
| 
						 | 
					0b616332f7 | ||
| 
						 | 
					4f030d12ad | ||
| 
						 | 
					792837dafd | ||
| 
						 | 
					8c77d45b06 | ||
| 
						 | 
					660f6dec37 | ||
| 
						 | 
					14e7ab2c4f | ||
| 
						 | 
					089f713f0d | ||
| 
						 | 
					53f81339a4 | ||
| 
						 | 
					2cf228e93d | ||
| 
						 | 
					4e8ee6840a | ||
| 
						 | 
					5144d47c54 | ||
| 
						 | 
					3eaed2527a | ||
| 
						 | 
					353bd24876 | ||
| 
						 | 
					473d64f9cc | ||
| 
						 | 
					c21598fb0d | ||
| 
						 | 
					287abc7aa0 | ||
| 
						 | 
					e6e732c64d | ||
| 
						 | 
					61cca3827f | ||
| 
						 | 
					88406455f5 | ||
| 
						 | 
					fb67681366 | ||
| 
						 | 
					ead75d4894 | ||
| 
						 | 
					bd4ba2b85d | ||
| 
						 | 
					998839109e | ||
| 
						 | 
					a23d3cc054 | ||
| 
						 | 
					803d5a12ab | ||
| 
						 | 
					462144c0f0 | ||
| 
						 | 
					a780e6f228 | ||
| 
						 | 
					7feab37f8a | ||
| 
						 | 
					091834064c | ||
| 
						 | 
					9275c62963 | ||
| 
						 | 
					7166ff0412 | ||
| 
						 | 
					bf69170dff | ||
| 
						 | 
					3c6dd8791c | ||
| 
						 | 
					69bc4e01b8 | ||
| 
						 | 
					b2d3b2dbe0 | ||
| 
						 | 
					c508641aec | ||
| 
						 | 
					f008070ad5 | ||
| 
						 | 
					c562884268 | ||
| 
						 | 
					992795f4c9 | ||
| 
						 | 
					d21f13cb05 | ||
| 
						 | 
					f1b26953e8 | ||
| 
						 | 
					216244bed8 | ||
| 
						 | 
					b85c3afc01 | ||
| 
						 | 
					e4ee3cc9d1 | ||
| 
						 | 
					03d7215604 | ||
| 
						 | 
					82e6fe5e36 | ||
| 
						 | 
					dde5788a44 | ||
| 
						 | 
					8038f3747d | ||
| 
						 | 
					0df95816c5 | ||
| 
						 | 
					3692626805 | ||
| 
						 | 
					b31d01d4a7 | ||
| 
						 | 
					ba8ef5917e | ||
| 
						 | 
					f5d0252282 | ||
| 
						 | 
					83386c0f7b | ||
| 
						 | 
					5e8aa8e5d9 | ||
| 
						 | 
					f008ed46d1 | ||
| 
						 | 
					7b5a65ce28 | ||
| 
						 | 
					4f4b93d8ae | ||
| 
						 | 
					81f97580cc | ||
| 
						 | 
					8de719530c | ||
| 
						 | 
					f0040ae8f5 | ||
| 
						 | 
					ec2425c3b6 | ||
| 
						 | 
					aedc01c850 | ||
| 
						 | 
					93c528a6d5 | ||
| 
						 | 
					443d666b9a | ||
| 
						 | 
					d794378dbc | ||
| 
						 | 
					76dad53903 | ||
| 
						 | 
					e5f8d98410 | ||
| 
						 | 
					7f8fed5711 | ||
| 
						 | 
					5ed6197b0a | ||
| 
						 | 
					609524894a | ||
| 
						 | 
					553adbb0c2 | ||
| 
						 | 
					361afca6a4 | ||
| 
						 | 
					4c6a2f6a33 | ||
| 
						 | 
					717ec19e30 | ||
| 
						 | 
					411fb983f7 | ||
| 
						 | 
					5dbe3d9c98 | ||
| 
						 | 
					fea067dce8 | ||
| 
						 | 
					1cfc846bf3 | ||
| 
						 | 
					dfa45b9f26 | ||
| 
						 | 
					6f602ed44d | ||
| 
						 | 
					34bf1dd293 | ||
| 
						 | 
					9a7584b062 | ||
| 
						 | 
					d6dfb94059 | ||
| 
						 | 
					b9ee2850cf | ||
| 
						 | 
					4183bf524d | ||
| 
						 | 
					1721f447c6 | ||
| 
						 | 
					46ef216f7f | ||
| 
						 | 
					a171741d65 | ||
| 
						 | 
					320c2cdb0f | ||
| 
						 | 
					9ed70db8ea | ||
| 
						 | 
					acbb8cb9dd | ||
| 
						 | 
					7889a93ff7 | ||
| 
						 | 
					970a551795 | ||
| 
						 | 
					d7eae31275 | ||
| 
						 | 
					b0294cbbfe | ||
| 
						 | 
					e2ff9be0b6 | ||
| 
						 | 
					16283fea40 | ||
| 
						 | 
					82ba9449e1 | ||
| 
						 | 
					2377ea9c66 | ||
| 
						 | 
					ac3593ada5 | ||
| 
						 | 
					d6dd996e56 | ||
| 
						 | 
					cee556daea | ||
| 
						 | 
					313f225a2e | ||
| 
						 | 
					95d565b64c | ||
| 
						 | 
					32ea1fdc7e | ||
| 
						 | 
					8d52ee9ae1 | ||
| 
						 | 
					9a07202f5e | ||
| 
						 | 
					0f953d69e5 | ||
| 
						 | 
					b3a1034c05 | ||
| 
						 | 
					8956d5131d | ||
| 
						 | 
					428cf99956 | ||
| 
						 | 
					1e5dab20fd | ||
| 
						 | 
					aa5251d170 | ||
| 
						 | 
					607add71d9 | ||
| 
						 | 
					074710629d | ||
| 
						 | 
					7f0b5dd69c | ||
| 
						 | 
					09b83c889b | ||
| 
						 | 
					9c416c235b | ||
| 
						 | 
					6ce3f22ae9 | ||
| 
						 | 
					32093ccc86 | ||
| 
						 | 
					d5ff1d782b | ||
| 
						 | 
					2ed8894aca | ||
| 
						 | 
					33cd8a5490 | ||
| 
						 | 
					dd25e9852a | ||
| 
						 | 
					05df9bb6e0 | ||
| 
						 | 
					a335bf404f | ||
| 
						 | 
					783a67260a | ||
| 
						 | 
					e99e126479 | ||
| 
						 | 
					98fce32683 | ||
| 
						 | 
					9493e540f9 | ||
| 
						 | 
					7138d38cc1 | ||
| 
						 | 
					9e7f0e1f7c | ||
| 
						 | 
					52345bfa1e | ||
| 
						 | 
					93070bceca | ||
| 
						 | 
					5b90676fc7 | ||
| 
						 | 
					92ad030cb7 | ||
| 
						 | 
					9afe0e4278 | ||
| 
						 | 
					3e63be01d1 | ||
| 
						 | 
					c73eedbe96 | ||
| 
						 | 
					8c54c4d9f7 | ||
| 
						 | 
					33817940c4 | ||
| 
						 | 
					7ec2e161ac | ||
| 
						 | 
					fc2e8cd0d0 | ||
| 
						 | 
					a3ea9edfda | ||
| 
						 | 
					7fa9891de2 | ||
| 
						 | 
					ddd9410a67 | ||
| 
						 | 
					532dde3e99 | ||
| 
						 | 
					2a6f393fa7 | ||
| 
						 | 
					2d1b9e0402 | ||
| 
						 | 
					19c878467f | ||
| 
						 | 
					1041d573ff | ||
| 
						 | 
					fda834160b | ||
| 
						 | 
					7d35435bb6 | ||
| 
						 | 
					5c191a62bc | ||
| 
						 | 
					eca3b6e47e | ||
| 
						 | 
					aa0a8624fb | ||
| 
						 | 
					f16a627115 | ||
| 
						 | 
					1d39975c4e | ||
| 
						 | 
					62d5f4c73e | ||
| 
						 | 
					d42cd99c66 | ||
| 
						 | 
					03ef882735 | ||
| 
						 | 
					19d0fcafb3 | ||
| 
						 | 
					cc6e92ff49 | ||
| 
						 | 
					463c2b6b77 | ||
| 
						 | 
					09c133e16f | ||
| 
						 | 
					bb1d3c1ad1 | ||
| 
						 | 
					cabb6a91cd | ||
| 
						 | 
					c76ac6b644 | ||
| 
						 | 
					6842075a09 | ||
| 
						 | 
					b1da189fe5 | ||
| 
						 | 
					9b635315be | ||
| 
						 | 
					702baf4cd3 | ||
| 
						 | 
					b27ee886e4 | ||
| 
						 | 
					276465cec6 | ||
| 
						 | 
					5428538d65 | ||
| 
						 | 
					ab5d4d6233 | ||
| 
						 | 
					2450ce124b | ||
| 
						 | 
					cf22eb77a7 | ||
| 
						 | 
					569802cdb1 | 
							
								
								
									
										1449
									
								
								Make-config
									
									
									
									
									
								
							
							
						
						
									
										1449
									
								
								Make-config
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										108
									
								
								Makefile.DJ
									
									
									
									
									
								
							
							
						
						
									
										108
									
								
								Makefile.DJ
									
									
									
									
									
								
							@@ -1,108 +0,0 @@
 | 
				
			|||||||
# Mesa 3-D graphics library
 | 
					 | 
				
			||||||
# Version:  4.0
 | 
					 | 
				
			||||||
# 
 | 
					 | 
				
			||||||
# Copyright (C) 1999  Brian Paul   All Rights Reserved.
 | 
					 | 
				
			||||||
# 
 | 
					 | 
				
			||||||
# Permission is hereby granted, free of charge, to any person obtaining a
 | 
					 | 
				
			||||||
# copy of this software and associated documentation files (the "Software"),
 | 
					 | 
				
			||||||
# to deal in the Software without restriction, including without limitation
 | 
					 | 
				
			||||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
 | 
					 | 
				
			||||||
# and/or sell copies of the Software, and to permit persons to whom the
 | 
					 | 
				
			||||||
# Software is furnished to do so, subject to the following conditions:
 | 
					 | 
				
			||||||
# 
 | 
					 | 
				
			||||||
# The above copyright notice and this permission notice shall be included
 | 
					 | 
				
			||||||
# in all copies or substantial portions of the Software.
 | 
					 | 
				
			||||||
# 
 | 
					 | 
				
			||||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 | 
					 | 
				
			||||||
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
					 | 
				
			||||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 | 
					 | 
				
			||||||
# BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
 | 
					 | 
				
			||||||
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 | 
					 | 
				
			||||||
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# DOS/DJGPP makefile v1.4 for Mesa
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#  Copyright (C) 2002 - Borca Daniel
 | 
					 | 
				
			||||||
#  Email : dborca@users.sourceforge.net
 | 
					 | 
				
			||||||
#  Web   : http://www.geocities.com/dborca
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#  Available options:
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#    Environment variables:
 | 
					 | 
				
			||||||
#	CPU		optimize for the given processor.
 | 
					 | 
				
			||||||
#			default = pentium
 | 
					 | 
				
			||||||
#	GLU=[mesa|sgi]	specify GLU directory; can be `sgi' (requires GNU/C++)
 | 
					 | 
				
			||||||
#			or `mesa'.
 | 
					 | 
				
			||||||
#			default = mesa
 | 
					 | 
				
			||||||
#	GLIDE		path to Glide3 SDK; used with FX.
 | 
					 | 
				
			||||||
#			default = $(TOP)/glide3
 | 
					 | 
				
			||||||
#	FX=1		build for 3dfx Glide3. Note that this disables
 | 
					 | 
				
			||||||
#			compilation of most DMesa code and requires fxMesa.
 | 
					 | 
				
			||||||
#			As a consequence, you'll need the DJGPP Glide3
 | 
					 | 
				
			||||||
#			library to build any application.
 | 
					 | 
				
			||||||
#			default = no
 | 
					 | 
				
			||||||
#	MATROX=1	build for Matrox Millennium I (MGA2064W) cards.
 | 
					 | 
				
			||||||
#			This is experimental and not intensively tested.
 | 
					 | 
				
			||||||
#			default = no
 | 
					 | 
				
			||||||
#	HAVE_X86=1	optimize for i386.
 | 
					 | 
				
			||||||
#			default = no
 | 
					 | 
				
			||||||
#	HAVE_MMX=1	allow MMX specializations, provided your assembler
 | 
					 | 
				
			||||||
#			supports MMX instruction set. However, the true CPU
 | 
					 | 
				
			||||||
#			capabilities are checked at run-time to avoid crashes.
 | 
					 | 
				
			||||||
#			default = no
 | 
					 | 
				
			||||||
#	HAVE_SSE=1	(see HAVE_MMX)
 | 
					 | 
				
			||||||
#			default = no
 | 
					 | 
				
			||||||
#	HAVE_3DNOW=1	(see HAVE_MMX)
 | 
					 | 
				
			||||||
#			default = no
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#    Targets:
 | 
					 | 
				
			||||||
#	all:		build everything
 | 
					 | 
				
			||||||
#	libgl:		build GL
 | 
					 | 
				
			||||||
#	libglu:		build GLU
 | 
					 | 
				
			||||||
#	libglut:	build GLUT
 | 
					 | 
				
			||||||
#	clean:		remove object files
 | 
					 | 
				
			||||||
#	realclean:	remove all generated files
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.PHONY : all libgl libglu libglut clean realclean
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CPU ?= pentium
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLU ?= mesa
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CFLAGS = -Wall -W -pedantic
 | 
					 | 
				
			||||||
CFLAGS += -O2 -ffast-math -mcpu=$(CPU)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export CFLAGS
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ifeq ($(wildcard $(addsuffix /rm.exe,$(subst ;, ,$(PATH)))),)
 | 
					 | 
				
			||||||
UNLINK = del $(subst /,\,$(1))
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
UNLINK = $(RM) $(1)
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
all: libgl libglu libglut
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
libgl: lib
 | 
					 | 
				
			||||||
	$(MAKE) -f Makefile.DJ -C src/mesa
 | 
					 | 
				
			||||||
libglu: lib
 | 
					 | 
				
			||||||
	$(MAKE) -f Makefile.DJ -C src/glu/$(GLU)
 | 
					 | 
				
			||||||
libglut: lib
 | 
					 | 
				
			||||||
	$(MAKE) -f Makefile.DJ -C src/glut/dos
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
lib:
 | 
					 | 
				
			||||||
	mkdir lib
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
clean:
 | 
					 | 
				
			||||||
	$(MAKE) -f Makefile.DJ clean -C src/mesa
 | 
					 | 
				
			||||||
	$(MAKE) -f Makefile.DJ clean -C src/glu/mesa
 | 
					 | 
				
			||||||
	$(MAKE) -f Makefile.DJ clean -C src/glu/sgi
 | 
					 | 
				
			||||||
	$(MAKE) -f Makefile.DJ clean -C src/glut/dos
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
realclean: clean
 | 
					 | 
				
			||||||
	-$(call UNLINK,lib/*.a)
 | 
					 | 
				
			||||||
	-$(call UNLINK,lib/*.dxe)
 | 
					 | 
				
			||||||
							
								
								
									
										874
									
								
								Makefile.X11
									
									
									
									
									
								
							
							
						
						
									
										874
									
								
								Makefile.X11
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										91
									
								
								Makefile.mgw
									
									
									
									
									
								
							
							
						
						
									
										91
									
								
								Makefile.mgw
									
									
									
									
									
								
							@@ -1,91 +0,0 @@
 | 
				
			|||||||
# Mesa 3-D graphics library
 | 
					 | 
				
			||||||
# Version:  4.0
 | 
					 | 
				
			||||||
# 
 | 
					 | 
				
			||||||
# Copyright (C) 1999  Brian Paul   All Rights Reserved.
 | 
					 | 
				
			||||||
# 
 | 
					 | 
				
			||||||
# Permission is hereby granted, free of charge, to any person obtaining a
 | 
					 | 
				
			||||||
# copy of this software and associated documentation files (the "Software"),
 | 
					 | 
				
			||||||
# to deal in the Software without restriction, including without limitation
 | 
					 | 
				
			||||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
 | 
					 | 
				
			||||||
# and/or sell copies of the Software, and to permit persons to whom the
 | 
					 | 
				
			||||||
# Software is furnished to do so, subject to the following conditions:
 | 
					 | 
				
			||||||
# 
 | 
					 | 
				
			||||||
# The above copyright notice and this permission notice shall be included
 | 
					 | 
				
			||||||
# in all copies or substantial portions of the Software.
 | 
					 | 
				
			||||||
# 
 | 
					 | 
				
			||||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 | 
					 | 
				
			||||||
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
					 | 
				
			||||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 | 
					 | 
				
			||||||
# BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
 | 
					 | 
				
			||||||
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 | 
					 | 
				
			||||||
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# MinGW makefile v1.0 for Mesa
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#  Copyright (C) 2002 - Borca Daniel
 | 
					 | 
				
			||||||
#  Email : dborca@users.sourceforge.net
 | 
					 | 
				
			||||||
#  Web   : http://www.geocities.com/dborca
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#  Available options:
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#    Environment variables:
 | 
					 | 
				
			||||||
#	CPU		optimize for the given processor.
 | 
					 | 
				
			||||||
#			default = pentium
 | 
					 | 
				
			||||||
#	GLIDE		path to Glide3 SDK; used with FX.
 | 
					 | 
				
			||||||
#			default = $(TOP)/glide3
 | 
					 | 
				
			||||||
#	FX=1		build for 3dfx Glide3. Note that this disables
 | 
					 | 
				
			||||||
#			compilation of most WMesa code and requires fxMesa.
 | 
					 | 
				
			||||||
#			As a consequence, you'll need the Win32 Glide3
 | 
					 | 
				
			||||||
#			library to build any application.
 | 
					 | 
				
			||||||
#			default = no
 | 
					 | 
				
			||||||
#	HAVE_X86=1	optimize for i386.
 | 
					 | 
				
			||||||
#			default = no
 | 
					 | 
				
			||||||
#	HAVE_MMX=1	allow MMX specializations, provided your assembler
 | 
					 | 
				
			||||||
#			supports MMX instruction set. However, the true CPU
 | 
					 | 
				
			||||||
#			capabilities are checked at run-time to avoid crashes.
 | 
					 | 
				
			||||||
#			default = no
 | 
					 | 
				
			||||||
#	HAVE_SSE=1	(see HAVE_MMX)
 | 
					 | 
				
			||||||
#			default = no
 | 
					 | 
				
			||||||
#	HAVE_3DNOW=1	(see HAVE_MMX)
 | 
					 | 
				
			||||||
#			default = no
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#    Targets:
 | 
					 | 
				
			||||||
#	all:		build everything
 | 
					 | 
				
			||||||
#	libgl:		build GL
 | 
					 | 
				
			||||||
#	clean:		remove object files
 | 
					 | 
				
			||||||
#	realclean:	remove all generated files
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.PHONY : all libgl clean realclean
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CPU ?= pentium
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CFLAGS = -Wall -W -pedantic
 | 
					 | 
				
			||||||
CFLAGS += -O2 -ffast-math -mcpu=$(CPU)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export CFLAGS
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ifeq ($(wildcard $(addsuffix /rm.exe,$(subst ;, ,$(PATH)))),)
 | 
					 | 
				
			||||||
UNLINK = del $(subst /,\,$(1))
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
UNLINK = $(RM) $(1)
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
all: libgl
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
libgl: lib
 | 
					 | 
				
			||||||
	$(MAKE) -f Makefile.mgw -C src/mesa
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
lib:
 | 
					 | 
				
			||||||
	mkdir lib
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
clean:
 | 
					 | 
				
			||||||
	$(MAKE) -f Makefile.mgw clean -C src/mesa
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
realclean: clean
 | 
					 | 
				
			||||||
	-$(call UNLINK,lib/*.a)
 | 
					 | 
				
			||||||
	-$(call UNLINK,lib/*.dll)
 | 
					 | 
				
			||||||
							
								
								
									
										179
									
								
								Mesa.dsw
									
									
									
									
									
								
							
							
						
						
									
										179
									
								
								Mesa.dsw
									
									
									
									
									
								
							@@ -1,179 +0,0 @@
 | 
				
			|||||||
Microsoft Developer Studio Workspace File, Format Version 6.00
 | 
					 | 
				
			||||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
###############################################################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Project: "array_cache"=".\SRC\MESA\array_cache\array_cache.dsp" - Package Owner=<4>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Package=<5>
 | 
					 | 
				
			||||||
{{{
 | 
					 | 
				
			||||||
}}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Package=<4>
 | 
					 | 
				
			||||||
{{{
 | 
					 | 
				
			||||||
}}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
###############################################################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Project: "gdi"=".\src\mesa\drivers\windows\gdi\gdi.dsp" - Package Owner=<4>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Package=<5>
 | 
					 | 
				
			||||||
{{{
 | 
					 | 
				
			||||||
}}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Package=<4>
 | 
					 | 
				
			||||||
{{{
 | 
					 | 
				
			||||||
    Begin Project Dependency
 | 
					 | 
				
			||||||
    Project_Dep_Name array_cache
 | 
					 | 
				
			||||||
    End Project Dependency
 | 
					 | 
				
			||||||
    Begin Project Dependency
 | 
					 | 
				
			||||||
    Project_Dep_Name main
 | 
					 | 
				
			||||||
    End Project Dependency
 | 
					 | 
				
			||||||
    Begin Project Dependency
 | 
					 | 
				
			||||||
    Project_Dep_Name math
 | 
					 | 
				
			||||||
    End Project Dependency
 | 
					 | 
				
			||||||
    Begin Project Dependency
 | 
					 | 
				
			||||||
    Project_Dep_Name swrast_setup
 | 
					 | 
				
			||||||
    End Project Dependency
 | 
					 | 
				
			||||||
    Begin Project Dependency
 | 
					 | 
				
			||||||
    Project_Dep_Name swrast
 | 
					 | 
				
			||||||
    End Project Dependency
 | 
					 | 
				
			||||||
    Begin Project Dependency
 | 
					 | 
				
			||||||
    Project_Dep_Name tnl
 | 
					 | 
				
			||||||
    End Project Dependency
 | 
					 | 
				
			||||||
    Begin Project Dependency
 | 
					 | 
				
			||||||
    Project_Dep_Name glapi
 | 
					 | 
				
			||||||
    End Project Dependency
 | 
					 | 
				
			||||||
}}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
###############################################################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Project: "glapi"=".\SRC\MESA\glapi\glapi.dsp" - Package Owner=<4>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Package=<5>
 | 
					 | 
				
			||||||
{{{
 | 
					 | 
				
			||||||
}}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Package=<4>
 | 
					 | 
				
			||||||
{{{
 | 
					 | 
				
			||||||
}}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
###############################################################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Project: "glu"=".\src\glu\sgi\glu.dsp" - Package Owner=<4>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Package=<5>
 | 
					 | 
				
			||||||
{{{
 | 
					 | 
				
			||||||
}}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Package=<4>
 | 
					 | 
				
			||||||
{{{
 | 
					 | 
				
			||||||
    Begin Project Dependency
 | 
					 | 
				
			||||||
    Project_Dep_Name gdi
 | 
					 | 
				
			||||||
    End Project Dependency
 | 
					 | 
				
			||||||
}}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
###############################################################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Project: "glut"=".\src\glut\glx\glut.dsp" - Package Owner=<4>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Package=<5>
 | 
					 | 
				
			||||||
{{{
 | 
					 | 
				
			||||||
}}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Package=<4>
 | 
					 | 
				
			||||||
{{{
 | 
					 | 
				
			||||||
    Begin Project Dependency
 | 
					 | 
				
			||||||
    Project_Dep_Name glu
 | 
					 | 
				
			||||||
    End Project Dependency
 | 
					 | 
				
			||||||
}}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
###############################################################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Project: "main"=".\SRC\MESA\main\main.dsp" - Package Owner=<4>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Package=<5>
 | 
					 | 
				
			||||||
{{{
 | 
					 | 
				
			||||||
}}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Package=<4>
 | 
					 | 
				
			||||||
{{{
 | 
					 | 
				
			||||||
}}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
###############################################################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Project: "math"=".\SRC\MESA\math\math.dsp" - Package Owner=<4>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Package=<5>
 | 
					 | 
				
			||||||
{{{
 | 
					 | 
				
			||||||
}}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Package=<4>
 | 
					 | 
				
			||||||
{{{
 | 
					 | 
				
			||||||
}}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
###############################################################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Project: "osmesa"=".\SRC\MESA\DRIVERS\osmesa\osmesa.dsp" - Package Owner=<4>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Package=<5>
 | 
					 | 
				
			||||||
{{{
 | 
					 | 
				
			||||||
}}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Package=<4>
 | 
					 | 
				
			||||||
{{{
 | 
					 | 
				
			||||||
    Begin Project Dependency
 | 
					 | 
				
			||||||
    Project_Dep_Name gdi
 | 
					 | 
				
			||||||
    End Project Dependency
 | 
					 | 
				
			||||||
}}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
###############################################################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Project: "swrast"=".\SRC\MESA\swrast\swrast.dsp" - Package Owner=<4>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Package=<5>
 | 
					 | 
				
			||||||
{{{
 | 
					 | 
				
			||||||
}}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Package=<4>
 | 
					 | 
				
			||||||
{{{
 | 
					 | 
				
			||||||
}}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
###############################################################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Project: "swrast_setup"=".\SRC\MESA\swrast_setup\swrast_setup.dsp" - Package Owner=<4>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Package=<5>
 | 
					 | 
				
			||||||
{{{
 | 
					 | 
				
			||||||
}}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Package=<4>
 | 
					 | 
				
			||||||
{{{
 | 
					 | 
				
			||||||
}}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
###############################################################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Project: "tnl"=".\SRC\MESA\tnl\tnl.dsp" - Package Owner=<4>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Package=<5>
 | 
					 | 
				
			||||||
{{{
 | 
					 | 
				
			||||||
}}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Package=<4>
 | 
					 | 
				
			||||||
{{{
 | 
					 | 
				
			||||||
}}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
###############################################################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Global:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Package=<5>
 | 
					 | 
				
			||||||
{{{
 | 
					 | 
				
			||||||
}}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Package=<3>
 | 
					 | 
				
			||||||
{{{
 | 
					 | 
				
			||||||
}}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
###############################################################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
							
								
								
									
										331
									
								
								bin/mklib
									
									
									
									
									
								
							
							
						
						
									
										331
									
								
								bin/mklib
									
									
									
									
									
								
							@@ -1,331 +0,0 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Make a shared library.
 | 
					 | 
				
			||||||
# Basically do a switch/case depending on the OS and make a shared
 | 
					 | 
				
			||||||
# lib conforming to that OS.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Usage:
 | 
					 | 
				
			||||||
#   mklib [options] objects ...
 | 
					 | 
				
			||||||
# Options:
 | 
					 | 
				
			||||||
#   -o LIBRARY    specifies the name of resulting library ("GL" for example)
 | 
					 | 
				
			||||||
#   -major N      specifies major version number (default is 1)
 | 
					 | 
				
			||||||
#   -minor N      specifies minor version number (default is 0)
 | 
					 | 
				
			||||||
#   -patch N      specifies patch version number (default is 0)
 | 
					 | 
				
			||||||
#   -lLIBRARY     specifies a dependency on LIBRARY
 | 
					 | 
				
			||||||
#   -LDIR         search in DIR for library dependencies
 | 
					 | 
				
			||||||
#   -cplusplus    link with C++ runtime
 | 
					 | 
				
			||||||
#   -static       make a static library (default is dynamic/shared)
 | 
					 | 
				
			||||||
#   -install DIR  move resulting library files to DIR
 | 
					 | 
				
			||||||
#   -arch ARCH    override using `uname` to determine architecture
 | 
					 | 
				
			||||||
#   -archopt OPT  specify an extra achitecture-specific option OPT
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# The library name should just be "GL" or "GLU", etc.  The 'lib' prefix
 | 
					 | 
				
			||||||
# will be added here if needed, as well as the ".so" or ".a" suffix, etc.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# objects should be:  foo.o bar.o etc.o
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Environment variables recognized:
 | 
					 | 
				
			||||||
#   CC   C compiler command
 | 
					 | 
				
			||||||
#   CXX  C++ compiler command
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Option defaults
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
LIBNAME=""
 | 
					 | 
				
			||||||
MAJOR=1
 | 
					 | 
				
			||||||
MINOR=0
 | 
					 | 
				
			||||||
PATCH=0
 | 
					 | 
				
			||||||
DEPS=""
 | 
					 | 
				
			||||||
CPLUSPLUS=0
 | 
					 | 
				
			||||||
STATIC=0
 | 
					 | 
				
			||||||
INSTALLDIR="."
 | 
					 | 
				
			||||||
ARCH="auto"
 | 
					 | 
				
			||||||
ARCHOPT=""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Parse arguments
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
while true
 | 
					 | 
				
			||||||
do
 | 
					 | 
				
			||||||
    case $1 in
 | 
					 | 
				
			||||||
	'-o')         shift 1; LIBNAME=$1;;
 | 
					 | 
				
			||||||
	'-major')     shift 1; MAJOR=$1;;
 | 
					 | 
				
			||||||
	'-minor')     shift 1; MINOR=$1;;
 | 
					 | 
				
			||||||
	'-patch')     shift 1; PATCH=$1;;
 | 
					 | 
				
			||||||
	-l*)          DEPS="$DEPS $1";;
 | 
					 | 
				
			||||||
	-L*)          DEPS="$DEPS $1";;
 | 
					 | 
				
			||||||
	'-cplusplus') CPLUSPLUS=1;;
 | 
					 | 
				
			||||||
	'-static')    STATIC=1;;
 | 
					 | 
				
			||||||
	'-install')   shift 1; INSTALLDIR=$1;;
 | 
					 | 
				
			||||||
	'-arch')      shift 1; ARCH=$1;;
 | 
					 | 
				
			||||||
	'-archopt')   shift 1; ARCHOPT=$1;;
 | 
					 | 
				
			||||||
	-*)           echo "mklib: Unknown option: " $1 ; exit 1;;
 | 
					 | 
				
			||||||
	*) break
 | 
					 | 
				
			||||||
    esac
 | 
					 | 
				
			||||||
    shift 1
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
OBJECTS=$@
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [ ${ARCH} = "auto" ] ; then
 | 
					 | 
				
			||||||
    ARCH=`uname`
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Error checking
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
if [ "x${LIBNAME}" = "x" ] ; then
 | 
					 | 
				
			||||||
    echo "mklib: Error: no library name specified"
 | 
					 | 
				
			||||||
    exit 1
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
if [ "x${OBJECTS}" = "x" ] ; then
 | 
					 | 
				
			||||||
    echo "mklib: Error: no object files specified"
 | 
					 | 
				
			||||||
    exit 1
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Debugging info
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
if [  ]  ; then
 | 
					 | 
				
			||||||
    echo "-----------------"
 | 
					 | 
				
			||||||
    echo ARCH is $ARCH
 | 
					 | 
				
			||||||
    echo LIBNAME is $LIBNAME
 | 
					 | 
				
			||||||
    echo MAJOR is $MAJOR
 | 
					 | 
				
			||||||
    echo MINOR is $MINOR
 | 
					 | 
				
			||||||
    echo PATCH is $PATCH
 | 
					 | 
				
			||||||
    echo DEPS are $DEPS
 | 
					 | 
				
			||||||
    echo "-----------------"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# OK, make the library now
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
case $ARCH in
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    'Linux')
 | 
					 | 
				
			||||||
	LIBNAME="lib${LIBNAME}"     # prefix with "lib"
 | 
					 | 
				
			||||||
	OPTS="-Xlinker -Bsymbolic -shared -Wl,-soname,${LIBNAME}.so.${MAJOR}"
 | 
					 | 
				
			||||||
	VERSION="${MAJOR}.${MINOR}.${PATCH}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	echo "mklib: Making Linux shared library: " ${LIBNAME}.so.${VERSION}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if [ $CPLUSPLUS = 1 ] ; then
 | 
					 | 
				
			||||||
	    LINK="g++"
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
	    LINK="gcc"
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	# rm any old libs
 | 
					 | 
				
			||||||
	rm -f ${LIBNAME}.so.${VERSION}
 | 
					 | 
				
			||||||
	rm -f ${LIBNAME}.so.${MAJOR}
 | 
					 | 
				
			||||||
	rm -f ${LIBNAME}.so
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	# make lib
 | 
					 | 
				
			||||||
	${LINK} ${OPTS} -o ${LIBNAME}.so.${VERSION} ${OBJECTS} ${DEPS}
 | 
					 | 
				
			||||||
	# make usual symlinks
 | 
					 | 
				
			||||||
	ln -s ${LIBNAME}.so.${VERSION} ${LIBNAME}.so.${MAJOR}
 | 
					 | 
				
			||||||
	ln -s ${LIBNAME}.so.${MAJOR} ${LIBNAME}.so
 | 
					 | 
				
			||||||
	# finish up
 | 
					 | 
				
			||||||
	FINAL_LIBS="${LIBNAME}.so.${VERSION} ${LIBNAME}.so.${MAJOR} ${LIBNAME}.so"
 | 
					 | 
				
			||||||
	;;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    'SunOS')
 | 
					 | 
				
			||||||
	LIBNAME="lib${LIBNAME}.so"
 | 
					 | 
				
			||||||
	echo "mklib: Making SunOS shared library: " ${LIBNAME}
 | 
					 | 
				
			||||||
	OPTS="-G"
 | 
					 | 
				
			||||||
	if [ $CPLUSPLUS = 1 ] ; then
 | 
					 | 
				
			||||||
	    # link for C++
 | 
					 | 
				
			||||||
	    if [ "x${CXX}" = "xg++" ] ; then
 | 
					 | 
				
			||||||
		LINK="g++"
 | 
					 | 
				
			||||||
	    elif [ "x${CXX}" = "xCC" ] ; then
 | 
					 | 
				
			||||||
		LINK="CC"
 | 
					 | 
				
			||||||
	    elif [ `which c++` ] ; then
 | 
					 | 
				
			||||||
		LINK="c++"
 | 
					 | 
				
			||||||
	    elif [ `type g++` ] ; then
 | 
					 | 
				
			||||||
		LINK="g++"
 | 
					 | 
				
			||||||
	    else
 | 
					 | 
				
			||||||
		echo "mklib: warning: can't find C++ comiler, trying CC."
 | 
					 | 
				
			||||||
		LINK="CC"
 | 
					 | 
				
			||||||
	    fi
 | 
					 | 
				
			||||||
	elif [ "x${CC}" = "xgcc" ] ; then
 | 
					 | 
				
			||||||
	    # use gcc for linking
 | 
					 | 
				
			||||||
	    LINK="gcc"
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
	    # use native Sun linker
 | 
					 | 
				
			||||||
	    LINK="ld"
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
	echo "mklib: linker is " ${LINK}
 | 
					 | 
				
			||||||
	rm -f ${LIBNAME}
 | 
					 | 
				
			||||||
	${LINK} ${OPTS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
 | 
					 | 
				
			||||||
	FINAL_LIBS=${LIBNAME}
 | 
					 | 
				
			||||||
	;;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    'FreeBSD')
 | 
					 | 
				
			||||||
	SHLIB="lib${LIBNAME}.so.${MAJOR}.${MINOR}"
 | 
					 | 
				
			||||||
	STLIB="lib${LIBNAME}.a"
 | 
					 | 
				
			||||||
	echo "mklib: Making FreeBSD shared library: " ${SHLIB}
 | 
					 | 
				
			||||||
	rm -f ${SHLIB} ${STLIB}
 | 
					 | 
				
			||||||
	ar cq ${STLIB} ${OBJECTS}
 | 
					 | 
				
			||||||
	ranlib ${STLIB}
 | 
					 | 
				
			||||||
	ld -Bshareable -o ${SHLIB} ${OBJECTS}
 | 
					 | 
				
			||||||
	# XXX make lib${LIBNAME}.so.${MAJOR} symlink?
 | 
					 | 
				
			||||||
	FINAL_LIBS="${SHLIB} ${STLIB}"
 | 
					 | 
				
			||||||
	;;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    'OpenBSD')
 | 
					 | 
				
			||||||
	LIBNAME="lib${LIBNAME}"
 | 
					 | 
				
			||||||
	VERSION="${MAJOR}.${MINOR}"
 | 
					 | 
				
			||||||
	echo "Building OpenBSD PIC library: " ${LIBNAME}
 | 
					 | 
				
			||||||
	rm -f ${LIBNAME}_pic.a ${LIBNAME}.so.${VERSION}
 | 
					 | 
				
			||||||
	ar cq ${LIBNAME}_pic.a ${OBJECTS}
 | 
					 | 
				
			||||||
	ranlib ${LIBNAME}_pic.a
 | 
					 | 
				
			||||||
	ld -x -Bshareable -Bforcearchive -o ${LIBNAME}.so.${VERSION} ${LIBNAME}_pic.a
 | 
					 | 
				
			||||||
	ln -s ${LIBNAME}.so.${VERSION} ${LIBNAME}.so
 | 
					 | 
				
			||||||
	FINAL_LIBS="${LIBNAME}_pic.a ${LIBNAME}.so.${VERSION} ${LIBNAME}.so"
 | 
					 | 
				
			||||||
	;;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    'NetBSD')
 | 
					 | 
				
			||||||
	LIBNAME="lib${LIBNAME}"
 | 
					 | 
				
			||||||
	echo "mklib: Making NetBSD PIC shared library: " ${LIBNAME}
 | 
					 | 
				
			||||||
	VERSION="${MAJOR}.${MINOR}"
 | 
					 | 
				
			||||||
	rm -f ${LIBNAME}_pic.a ${LIBNAME}.so.${VERSION}
 | 
					 | 
				
			||||||
	ar cq ${LIBNAME}_pic.a ${OBJECTS}
 | 
					 | 
				
			||||||
	ranlib ${LIBNAME}_pic.a
 | 
					 | 
				
			||||||
	ld -x -Bshareable -Bforcearchive -o ${LIBNAME}.so.${VERSION} ${LIBNAME}_pic.a
 | 
					 | 
				
			||||||
	FINAL_LIBS="${LIBNAME}_pic.a ${LIBNAME}.so.${VERSION}"
 | 
					 | 
				
			||||||
	;;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    'IRIX')
 | 
					 | 
				
			||||||
	LIBNAME="lib${LIBNAME}.so"  # prefix with "lib", suffix with ".so"
 | 
					 | 
				
			||||||
	if [ $ARCHOPTS = "64" ] ; then
 | 
					 | 
				
			||||||
	    # 64-bit ABI
 | 
					 | 
				
			||||||
	    OPTS="-64 -shared -all"
 | 
					 | 
				
			||||||
	    echo "mklib: Making IRIX 64-bit shared library: " ${LIBNAME}
 | 
					 | 
				
			||||||
	elif [ $ARCHOPTS = "o32" ] ; then
 | 
					 | 
				
			||||||
	    # old 32-bit ABI
 | 
					 | 
				
			||||||
	    OPTS="-32 -shared -all"
 | 
					 | 
				
			||||||
	    echo "mklib: Making IRIX o32-bit shared library: " ${LIBNAME}
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
	    # new 32-bit ABI
 | 
					 | 
				
			||||||
	    OPTS="-n32 -shared -all"
 | 
					 | 
				
			||||||
	    echo "mklib: Making IRIX n32-bit shared library: " ${LIBNAME}
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
	ld ${OPTS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
 | 
					 | 
				
			||||||
	FINAL_LIBS="${LIBNAME}"
 | 
					 | 
				
			||||||
	;;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    'IRIX64')
 | 
					 | 
				
			||||||
	LIBNAME="lib${LIBNAME}.so"  # prefix with "lib", suffix with ".so"
 | 
					 | 
				
			||||||
	echo "mklib: Making IRIX64 library: " ${LIBNAME}
 | 
					 | 
				
			||||||
	# 64-bit ABI
 | 
					 | 
				
			||||||
	OPTS="-64 -shared -all"
 | 
					 | 
				
			||||||
	ld ${OPTS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
 | 
					 | 
				
			||||||
	FINAL_LIBS="${LIBNAME}"
 | 
					 | 
				
			||||||
	;;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    'linux-cygwin')
 | 
					 | 
				
			||||||
	LIBNAME="lib${LIBNAME}.a"
 | 
					 | 
				
			||||||
	echo "mklib: Making linux-cygwin library: " ${LIBNAME}
 | 
					 | 
				
			||||||
	gnuwin32ar ruv ${LIBNAME} ${OBJECTS}
 | 
					 | 
				
			||||||
	FINAL_LIBS=${LIBNAME}
 | 
					 | 
				
			||||||
	;;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    'HPUX')
 | 
					 | 
				
			||||||
	RUNLIB="lib${LIBNAME}.${MAJOR}"
 | 
					 | 
				
			||||||
	DEVLIB="lib${LIBNAME}.sl"
 | 
					 | 
				
			||||||
	echo "mklib: Making HPUX library: " ${RUNLIB} ${DEVLIB}
 | 
					 | 
				
			||||||
	ld -b -o ${RUNLIB} +b ${RUNLIB} ${OBJECTS} ${DEPS}
 | 
					 | 
				
			||||||
	ln -s ${RUNLIB} ${DEVLIB}
 | 
					 | 
				
			||||||
	FINAL_LIBS="{RUNLIB} ${DEVLIB}"
 | 
					 | 
				
			||||||
	;;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    'OpenSTEP')
 | 
					 | 
				
			||||||
	LIBNAME="lib${LIBNAME}.a"
 | 
					 | 
				
			||||||
	echo "mklib: Making OpenSTEP static library: " ${LIBNAME}
 | 
					 | 
				
			||||||
	libtool -static -o ${LIBNAME} - ${OBJECTS}
 | 
					 | 
				
			||||||
	FINAL_LIBS=${LIBNAME}
 | 
					 | 
				
			||||||
	;;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    'OSF1')
 | 
					 | 
				
			||||||
	VERSION="${MAJOR}.${MINOR}"
 | 
					 | 
				
			||||||
	LIBNAME="lib${LIBNAME}.so"
 | 
					 | 
				
			||||||
	ARNAME="lib${LIBNAME}.a"
 | 
					 | 
				
			||||||
	echo "mklib: Making OSF/1 library: " ${LIBNAME}
 | 
					 | 
				
			||||||
	rm -f ${LIBNAME}.${VERSION}
 | 
					 | 
				
			||||||
	ld -o ${LIBNAME}.${VERSION} -shared -no_archive -set_version ${VERSION} -soname ${LIBNAME}.${VERSION} -expect_unresolved \* -all ${OBJECTS} ${DEPS}
 | 
					 | 
				
			||||||
	ln -sf ${LIBNAME}.${VERSION} ${LIBNAME}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	# also make static lib
 | 
					 | 
				
			||||||
	rm -f ${ARNAME}
 | 
					 | 
				
			||||||
	ar clqz ${ARNAME} ${OBJECTS}
 | 
					 | 
				
			||||||
	FINAL_LIBS="${ARNAME} ${LIBNAME} ${LIBNAME}.${VERSION}"
 | 
					 | 
				
			||||||
	;;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    'Darwin')
 | 
					 | 
				
			||||||
	VERSION="${MAJOR}.${MINOR}.${TINY}"
 | 
					 | 
				
			||||||
	LIBNAME="lib${LIBNAME}.dylib"
 | 
					 | 
				
			||||||
	ARNAME="lib${LIBNAME}.dylib.a"
 | 
					 | 
				
			||||||
	echo "mklib: Making Darwin libraries: " ${LIBNAME} ${ARNAME}
 | 
					 | 
				
			||||||
	FLAGS="-dynamiclib -multiply_defined suppress"
 | 
					 | 
				
			||||||
	cc ${FLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
 | 
					 | 
				
			||||||
	# also make regular .a files,
 | 
					 | 
				
			||||||
	# provided by Danek Duvall (duvall@dhduvall.student.princeton.edu)
 | 
					 | 
				
			||||||
	ar ruv ${ARNAME} ${OBJECTS}
 | 
					 | 
				
			||||||
	ranlib ${ARNAME}
 | 
					 | 
				
			||||||
	FINAL_LIBS="${ARNAME} ${LIBNAME}"
 | 
					 | 
				
			||||||
	;;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    'LynxOS')
 | 
					 | 
				
			||||||
	LIBNAME="lib${LIBNAME}.a"
 | 
					 | 
				
			||||||
	echo "mklib: Making LynxOS library: " ${LIBNAME}
 | 
					 | 
				
			||||||
	ar ru ${LIBNAME} ${OBJECTS}
 | 
					 | 
				
			||||||
	FINAL_LIBS=${LIBNAME}
 | 
					 | 
				
			||||||
	;;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    'BeOS')
 | 
					 | 
				
			||||||
	LIBNAME="lib${LIBNAME}.so"
 | 
					 | 
				
			||||||
	echo "mklib: Making BeOS shared library: " ${LIBNAME}
 | 
					 | 
				
			||||||
	gcc -nostart -Xlinker -soname=${LIBNAME} -L/Be/develop/lib/x86 ${OBJECTS} -lbe -o ${LIBNAME}
 | 
					 | 
				
			||||||
	FINAL_LIBS=${LIBNAME}
 | 
					 | 
				
			||||||
	;;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    'QNX')
 | 
					 | 
				
			||||||
	LIBNAME="lib${LIBNAME}.a"
 | 
					 | 
				
			||||||
	echo "mklib: Making QNX library: " ${LIBNAME}
 | 
					 | 
				
			||||||
	wlib ${LIBNAME} ${OBJECTS}
 | 
					 | 
				
			||||||
	FINAL_LIBS=${LIBNAME}
 | 
					 | 
				
			||||||
	;;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    'example')
 | 
					 | 
				
			||||||
	# If you're adding support for a new architecture, you can
 | 
					 | 
				
			||||||
	# start with this:
 | 
					 | 
				
			||||||
	LIBNAME="lib${LIBNAME}.so"  # prefix with "lib"
 | 
					 | 
				
			||||||
	echo "mklib: Making library for example arch: " ${LIBNAME}
 | 
					 | 
				
			||||||
	ld -o ${LIBNAME} ${OBJECTS} ${DEPS}
 | 
					 | 
				
			||||||
	FINAL_LIBS="${LIBNAME}"
 | 
					 | 
				
			||||||
	;;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    *)
 | 
					 | 
				
			||||||
	echo "mklib: WARNING: making library for unknown platform!"
 | 
					 | 
				
			||||||
	echo "mklib: WARNING: this may not work!"
 | 
					 | 
				
			||||||
	echo "mklib: WARNING: please update the bin/mklib script!"
 | 
					 | 
				
			||||||
	# XXX this is a total hack for Mesa - remove someday
 | 
					 | 
				
			||||||
	# fall-back to an old mklib.* script
 | 
					 | 
				
			||||||
	${MAKELIB} "lib${LIBNAME}.a" ${MAJOR} ${MINOR} ${PATCH} ${OBJECTS}
 | 
					 | 
				
			||||||
	;;
 | 
					 | 
				
			||||||
esac
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Put library files into installation directory if specified.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
if [ ${INSTALLDIR} != "." ] ; then
 | 
					 | 
				
			||||||
    echo "mklib: Installing" ${FINAL_LIBS} "in" ${INSTALLDIR}
 | 
					 | 
				
			||||||
    mv ${FINAL_LIBS} ${INSTALLDIR}/
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
							
								
								
									
										52
									
								
								bin/mklib.solaris
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								bin/mklib.solaris
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
				
			|||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Make a Solaris shared library
 | 
				
			||||||
 | 
					# contributed by Arno Hahma (arno@nitro.pp.utu.fi)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#--identification------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# $Id: mklib.solaris,v 1.2 1999/09/15 15:10:20 brianp Exp $
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# $Log: mklib.solaris,v $
 | 
				
			||||||
 | 
					# Revision 1.2  1999/09/15 15:10:20  brianp
 | 
				
			||||||
 | 
					# added third, tiny version number to arguments
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Revision 1.1  1999/08/19 13:53:06  brianp
 | 
				
			||||||
 | 
					# initial check-in (post-crash)
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#--common--------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LIBRARY=$1
 | 
				
			||||||
 | 
					shift 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MAJOR=$1
 | 
				
			||||||
 | 
					shift 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MINOR=$1
 | 
				
			||||||
 | 
					shift 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TINY=$1
 | 
				
			||||||
 | 
					shift 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OBJECTS=$*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#--platform-------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set -x
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LIBRARY=`basename $LIBRARY .a`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					VERSION=$MAJOR.$MINOR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "Building shared object $LIBRARY.so.$VERSION and the archive library $LIBRARY.a"
 | 
				
			||||||
 | 
					rm -f ${LIBRARY}.a ${LIBRARY}.so.${VERSION}
 | 
				
			||||||
 | 
					ar ruv ${LIBRARY}.a ${OBJECTS}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ld -G -o ${LIBRARY}.so.${VERSION} ${OBJECTS}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cp ${LIBRARY}.a ${LIBRARY}.so.${VERSION} ../lib
 | 
				
			||||||
 | 
					cd ../lib
 | 
				
			||||||
 | 
					ln -s ${LIBRARY}.so.${VERSION} ${LIBRARY}.so
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										21
									
								
								descrip.mms
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								descrip.mms
									
									
									
									
									
								
							@@ -1,21 +0,0 @@
 | 
				
			|||||||
# Makefile for Mesa for VMS
 | 
					 | 
				
			||||||
# contributed by Jouk Jansen  joukj@hrem.stm.tudelft.nl
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
macro : 
 | 
					 | 
				
			||||||
        @ macro=""
 | 
					 | 
				
			||||||
.ifdef NOSHARE
 | 
					 | 
				
			||||||
.else
 | 
					 | 
				
			||||||
	@ if f$getsyi("HW_MODEL") .ge. 1024 then macro= "/MACRO=(SHARE=1)"
 | 
					 | 
				
			||||||
.endif
 | 
					 | 
				
			||||||
	$(MMS)$(MMSQUALIFIERS)'macro' all
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
all :
 | 
					 | 
				
			||||||
	if f$search("lib.dir") .eqs. "" then create/directory [.lib]
 | 
					 | 
				
			||||||
	set default [.src]
 | 
					 | 
				
			||||||
	$(MMS)$(MMSQUALIFIERS)
 | 
					 | 
				
			||||||
	set default [-.progs.demos]
 | 
					 | 
				
			||||||
	$(MMS)$(MMSQUALIFIERS)
 | 
					 | 
				
			||||||
	set default [-.xdemos]
 | 
					 | 
				
			||||||
	$(MMS)$(MMSQUALIFIERS)
 | 
					 | 
				
			||||||
	set default [-.tests]
 | 
					 | 
				
			||||||
	$(MMS)$(MMSQUALIFIERS)
 | 
					 | 
				
			||||||
@@ -1,94 +0,0 @@
 | 
				
			|||||||
Name
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    MESA_agp_offset
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Name Strings
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    GLX_MESA_agp_offset
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Contact
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Brian Paul, Tungsten Graphics, Inc. (brian 'at' tungstengraphics.com)
 | 
					 | 
				
			||||||
    Keith Whitwell, Tungsten Graphics, Inc.  (keith 'at' tungstengraphics.com)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Shipping (Mesa 4.0.4 and later.  Only implemented in particular
 | 
					 | 
				
			||||||
    XFree86/DRI drivers.)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Version
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    1.0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Number
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    TBD
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dependencies
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    OpenGL 1.0 or later is required
 | 
					 | 
				
			||||||
    GLX_NV_vertex_array_range is required.
 | 
					 | 
				
			||||||
    This extensions is written against the OpenGL 1.4 Specification.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Overview
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    This extensions provides a way to convert pointers in an AGP memory
 | 
					 | 
				
			||||||
    region into byte offsets into the AGP aperture.
 | 
					 | 
				
			||||||
    Note, this extension depends on GLX_NV_vertex_array_range, for which
 | 
					 | 
				
			||||||
    no real specification exists.  See GL_NV_vertex_array_range for more
 | 
					 | 
				
			||||||
    information.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
IP Status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Issues
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Procedures and Functions
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    GLuint glXGetAGPOffsetMESA( const GLvoid *pointer )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Tokens
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to the OpenGL 1.4 Specification
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 3 the GLX 1.4 Specification (Functions and Errors)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Add a new section, 3.6 as follows:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    3.6 AGP Memory Access
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    On "PC" computers, AGP memory can be allocated with glXAllocateMemoryNV
 | 
					 | 
				
			||||||
    and freed with glXFreeMemoryNV.  Sometimes it's useful to know where a
 | 
					 | 
				
			||||||
    block of AGP memory is located with respect to the start of the AGP
 | 
					 | 
				
			||||||
    aperature.  The function
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        GLuint glXGetAGPOffsetMESA( const GLvoid *pointer )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Returns the offset of the given memory block from the start of AGP
 | 
					 | 
				
			||||||
    memory in basic machine units (i.e. bytes).  If pointer is invalid
 | 
					 | 
				
			||||||
    the value ~0 will be returned.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLX Protocol
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.  This is a client side-only extension.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Errors
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    glXGetAGPOffsetMESA will return ~0 if the pointer does not point to
 | 
					 | 
				
			||||||
    an AGP memory region.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New State
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Revision History
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    20 September 2002 - Initial draft
 | 
					 | 
				
			||||||
    2 October 2002 - finished GLX chapter 3 additions
 | 
					 | 
				
			||||||
@@ -1,88 +0,0 @@
 | 
				
			|||||||
Name
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    MESA_copy_sub_buffer
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Name Strings
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    GLX_MESA_copy_sub_buffer
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Contact
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Brian Paul (brian 'at' mesa3d.org)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Shipping since Mesa 2.6 in February, 1998.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Version
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Last Modified Date:  8 June 2000
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Number
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    215
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dependencies
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    OpenGL 1.0 or later is required.
 | 
					 | 
				
			||||||
    GLX 1.0 or later is required.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Overview
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The glxCopySubBufferMESA() function copies a rectangular region
 | 
					 | 
				
			||||||
    of the back color buffer to the front color buffer.  This can be
 | 
					 | 
				
			||||||
    used to quickly repaint 3D windows in response to expose events
 | 
					 | 
				
			||||||
    when the back color buffer cannot be damaged by other windows.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
IP Status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Open-source; freely implementable.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Issues
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Procedures and Functions
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    void glXCopySubBufferMESA( Display *dpy, GLXDrawable drawable,
 | 
					 | 
				
			||||||
			       int x, int y, int width, int height );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Tokens
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 3 of the GLX 1.3 Specification (Functions and Errors)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Add to section 3.3.10 Double Buffering:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The function
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	 void glXCopySubBufferMESA( Display *dpy, GLXDrawable drawable,
 | 
					 | 
				
			||||||
				    int x, int y, int width, int height );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    may be used to copy a rectangular region of the back color buffer to
 | 
					 | 
				
			||||||
    the front color buffer.  This can be used to quickly repaint 3D windows
 | 
					 | 
				
			||||||
    in response to expose events when the back color buffer cannot be
 | 
					 | 
				
			||||||
    damaged by other windows.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <x> and <y> indicates the lower-left corner of the region to copy and
 | 
					 | 
				
			||||||
    <width> and <height> indicate the size in pixels.  Coordinate (0,0)
 | 
					 | 
				
			||||||
    corresponds to the lower-left pixel of the window, like glReadPixels.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLX Protocol
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None at this time.  The extension is implemented in terms of ordinary
 | 
					 | 
				
			||||||
    Xlib protocol inside of Mesa.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Errors
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New State
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Revision History
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    8 June 2000 - initial specification
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -1,138 +0,0 @@
 | 
				
			|||||||
Name
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    MESA_pack_invert
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Name Strings
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    GL_MESA_pack_invert
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Contact
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Brian Paul, Tungsten Graphics, Inc. (brian 'at' tungstengraphics.com)
 | 
					 | 
				
			||||||
    Keith Whitwell, Tungsten Graphics, Inc.  (keith 'at' tungstengraphics.com)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Shipping (Mesa 4.0.4 and later)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Version
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    1.0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Number
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    TBD
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dependencies
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    OpenGL 1.0 or later is required
 | 
					 | 
				
			||||||
    This extensions is written against the OpenGL 1.4 Specification.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Overview
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    This extension adds a new pixel storage parameter to indicate that
 | 
					 | 
				
			||||||
    images are to be packed in top-to-bottom order instead of OpenGL's
 | 
					 | 
				
			||||||
    conventional bottom-to-top order.  Only pixel packing can be
 | 
					 | 
				
			||||||
    inverted (i.e. for glReadPixels, glGetTexImage, glGetConvolutionFilter,
 | 
					 | 
				
			||||||
    etc).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Almost all known image file formats store images in top-to-bottom
 | 
					 | 
				
			||||||
    order.  As it is, OpenGL reads images from the frame buffer in
 | 
					 | 
				
			||||||
    bottom-to-top order.  Thus, images usually have to be inverted before
 | 
					 | 
				
			||||||
    writing them to a file with image I/O libraries.  This extension
 | 
					 | 
				
			||||||
    allows images to be read such that inverting isn't needed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
IP Status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Issues
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    1. Should we also defined UNPACK_INVERT_MESA for glDrawPixels, etc?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Resolved:  No, we're only concerned with pixel packing.  There are other
 | 
					 | 
				
			||||||
    solutions for inverting images when using glDrawPixels (negative Y pixel
 | 
					 | 
				
			||||||
    zoom) or glTexImage (invert the vertex T coordinates).  It would be easy
 | 
					 | 
				
			||||||
    enough to define a complementary extension for pixel packing in the
 | 
					 | 
				
			||||||
    future if needed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Procedures and Functions
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Tokens
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Accepted by the <pname> parameter of PixelStorei and PixelStoref
 | 
					 | 
				
			||||||
    and the <pname> parameter of GetIntegerv, GetFloatv, GetDoublev
 | 
					 | 
				
			||||||
    and GetBooleanv:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        PACK_INVERT_MESA                   0x8758
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 2 of the OpenGL 1.4 Specification (OpenGL Operation)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 3 of the OpenGL 1.4 Specification (Rasterization)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 4 of the OpenGL 1.4 Specification (Per-Fragment
 | 
					 | 
				
			||||||
Operations and the Frame Buffer)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Add the following entry to table 4.4 (PixelStore parameters) on page 182:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Parameter Name       Type    Initial Value    Valid Range
 | 
					 | 
				
			||||||
    ---------------------------------------------------------
 | 
					 | 
				
			||||||
    PACK_INVERT_MESA     boolean     FALSE        TRUE/FALSE
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    In the section labeled "Placement in Client Memory" on page 184
 | 
					 | 
				
			||||||
    insert the following text into the paragraph before the sentence
 | 
					 | 
				
			||||||
    that starts with "If the format is RED, GREEN, BLUE...":
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    "The parameter PACK_INVERT_MESA controls whether the image is packed
 | 
					 | 
				
			||||||
     in bottom-to-top order (the default) or top-to-bottom order.  Equation
 | 
					 | 
				
			||||||
     3.8 is modified as follows:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
     ... the first element of the Nth row is indicated by
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         p + Nk,                if PACK_INVERT_MESA is false
 | 
					 | 
				
			||||||
         p + k * (H - 1) - Nk,  if PACK_INVERT_MESA is true, where H is the
 | 
					 | 
				
			||||||
                                image height
 | 
					 | 
				
			||||||
    "
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 5 of the OpenGL 1.4 Specification (Special Functions)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 6 of the OpenGL 1.4 Specification (State and
 | 
					 | 
				
			||||||
State Requests)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Appendix A of the OpenGL 1.4 Specification (Invariance)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to the AGL/GLX/WGL Specifications
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLX Protocol
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Errors
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New State
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Add the following entry to table 6.20 (Pixels) on page 235:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Get Value         Type     Get Cmd    Initial Value  Description                Sec    Attribute
 | 
					 | 
				
			||||||
    --------------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
    PACK_INVERT_MESA  boolean  GetBoolean  FALSE         Value of PACK_INVERT_MESA  4.3.2  pixel-store
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Revision History
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    21 September 2002 - Initial draft
 | 
					 | 
				
			||||||
@@ -1,231 +0,0 @@
 | 
				
			|||||||
Name
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    MESA_packed_depth_stencil
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Name Strings
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    GL_MESA_packed_depth_stencil
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Contact
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Keith Whitwell, VA Linux Systems Inc. (keithw 'at' valinux.com)
 | 
					 | 
				
			||||||
    Brian Paul, VA Linux Systems Inc. (brianp 'at' valinux.com)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Obsolete.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Version
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    $Id: MESA_packed_depth_stencil.spec,v 1.2 2003/09/19 14:58:21 brianp Exp $
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Number
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ???
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dependencies
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    EXT_abgr affects the definition of this extension
 | 
					 | 
				
			||||||
    SGIS_texture4D affects the definition of this extension
 | 
					 | 
				
			||||||
    EXT_cmyka affects the definition of this extension
 | 
					 | 
				
			||||||
    ARB_packed_pixels affects the definition of this extension
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Overview
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
    Provides a mechanism for DrawPixels and ReadPixels to efficiently
 | 
					 | 
				
			||||||
    transfer depth and stencil image data.  Specifically, we defined new
 | 
					 | 
				
			||||||
    packed pixel formats and types which pack both stencil and depth
 | 
					 | 
				
			||||||
    into one value.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Issues:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    1. Is this the right way to distinguish between 24/8 and 8/24
 | 
					 | 
				
			||||||
       pixel formats?  Should we instead provide both:
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
       GL_DEPTH_STENCIL_MESA
 | 
					 | 
				
			||||||
       GL_STENCIL_DEPTH_MESA
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       And perhaps just use GL_UNSIGNED_INT, GL_UNSIGNED_SHORT ?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    2. If not, is it correct to use _REV to indicate that stencil
 | 
					 | 
				
			||||||
       preceeds depth in the 1_15 and 8_24 formats?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    3. Do we really want the GL_UNSIGNED_SHORT formats?  
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
New Procedures and Functions
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Tokens
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    Accepted by the <format> parameter of ReadPixels and DrawPixels:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	GL_DEPTH_STENCIL_MESA		0x8750
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Accepted by the <type> parameter of ReadPixels and DrawPixels:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	GL_UNSIGNED_INT_24_8_MESA	0x8751
 | 
					 | 
				
			||||||
	GL_UNSIGNED_INT_8_24_REV_MESA	0x8752
 | 
					 | 
				
			||||||
	GL_UNSIGNED_SHORT_15_1_MESA	0x8753
 | 
					 | 
				
			||||||
	GL_UNSIGNED_SHORT_1_15_REV_MESA	0x8754
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 2 of the 1.1 Specification (OpenGL Operation)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 3 of the 1.1 Specification (Rasterization)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    One entry is added to table 3.5 (DrawPixels and ReadPixels formats).
 | 
					 | 
				
			||||||
    The new table is:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			Target
 | 
					 | 
				
			||||||
	Format Name	Buffer	Element Meaning and Order
 | 
					 | 
				
			||||||
	-----------	------	-------------------------
 | 
					 | 
				
			||||||
	COLOR_INDEX	Color	Color index
 | 
					 | 
				
			||||||
	STENCIL_INDEX	Stencil Stencil index
 | 
					 | 
				
			||||||
	DEPTH_COMPONENT Depth	Depth component
 | 
					 | 
				
			||||||
	RED		Color	R component
 | 
					 | 
				
			||||||
	GREEN		Color	G component
 | 
					 | 
				
			||||||
	BLUE		Color	B component
 | 
					 | 
				
			||||||
	ALPHA		Color	A component
 | 
					 | 
				
			||||||
	RGB		Color	R, G, B components
 | 
					 | 
				
			||||||
	RGBA		Color	R, G, B, A components
 | 
					 | 
				
			||||||
	BGRA	        Color   B, G, R, A components
 | 
					 | 
				
			||||||
	ABGR_EXT	Color	A, B, G, R components
 | 
					 | 
				
			||||||
	CMYK_EXT	Color	Cyan, Magenta, Yellow, Black components
 | 
					 | 
				
			||||||
	CMYKA_EXT	Color	Cyan, Magenta, Yellow, Black, A components
 | 
					 | 
				
			||||||
	LUMINANCE	Color	Luminance component
 | 
					 | 
				
			||||||
	LUMINANCE_ALPHA Color	Luminance, A components
 | 
					 | 
				
			||||||
	DEPTH_STENCIL   Depth,  Depth component, stencil index.
 | 
					 | 
				
			||||||
			Stencil
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	Table 3.5: DrawPixels and ReadPixels formats.  The third column
 | 
					 | 
				
			||||||
	gives a description of and the number and order of elements in a
 | 
					 | 
				
			||||||
	group.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Add to the description of packed pixel formats:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	<type> Parameter		Data	of	  Matching
 | 
					 | 
				
			||||||
	Token Name			Type	Elements  Pixel Formats
 | 
					 | 
				
			||||||
	----------------		----	--------  -------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	UNSIGNED_BYTE_3_3_2	      ubyte   3	      RGB
 | 
					 | 
				
			||||||
	UNSIGNED_BYTE_2_3_3_REV       ubyte   3	      RGB
 | 
					 | 
				
			||||||
	UNSIGNED_SHORT_5_6_5	      ushort  3	      RGB
 | 
					 | 
				
			||||||
	UNSIGNED_SHORT_5_6_5_REV      ushort  3	      RGB
 | 
					 | 
				
			||||||
	UNSIGNED_SHORT_4_4_4_4	      ushort  4	      RGBA,BGRA,ABGR_EXT,CMYK_EXT
 | 
					 | 
				
			||||||
	UNSIGNED_SHORT_4_4_4_4_REV    ushort  4	      RGBA,BGRA
 | 
					 | 
				
			||||||
	UNSIGNED_SHORT_5_5_5_1	      ushort  4	      RGBA,BGRA,ABGR_EXT,CMYK_EXT
 | 
					 | 
				
			||||||
	UNSIGNED_SHORT_1_5_5_5_REV    ushort  4	      RGBA,BGRA
 | 
					 | 
				
			||||||
	UNSIGNED_INT_8_8_8_8	      uint    4	      RGBA,BGRA,ABGR_EXT,CMYK_EXT
 | 
					 | 
				
			||||||
	UNSIGNED_INT_8_8_8_8_REV      uint    4	      RGBA,BGRA
 | 
					 | 
				
			||||||
	UNSIGNED_INT_10_10_10_2       uint    4	      RGBA,BGRA,ABGR_EXT,CMYK_EXT
 | 
					 | 
				
			||||||
	UNSIGNED_INT_2_10_10_10_REV   uint    4	      RGBA,BGRA
 | 
					 | 
				
			||||||
	UNSIGNED_SHORT_15_1_MESA      ushort  2       DEPTH_STENCIL_MESA
 | 
					 | 
				
			||||||
	UNSIGNED_SHORT_1_15_REV_MESA  ushort  2       DEPTH_STENCIL_MESA
 | 
					 | 
				
			||||||
	UNSIGNED_SHORT_24_8_MESA      ushort  2       DEPTH_STENCIL_MESA
 | 
					 | 
				
			||||||
	UNSIGNED_SHORT_8_24_REV_MESA  ushort  2       DEPTH_STENCIL_MESA
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	UNSIGNED_INT_8_24:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	     31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10	9  8  7  6  5  4  3  2	1  0
 | 
					 | 
				
			||||||
	    +-----------------------+-----------------------------------------------------------------------+
 | 
					 | 
				
			||||||
	    |			    |			     			    			    |
 | 
					 | 
				
			||||||
	    +-----------------------+-----------------------------------------------------------------------+
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		    first					second		    
 | 
					 | 
				
			||||||
		    element					element		    
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	UNSIGNED_INT_24_8:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	     31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10	9  8  7  6  5  4  3  2	1  0
 | 
					 | 
				
			||||||
	    +----------------------------------------------------------------------+------------------------+
 | 
					 | 
				
			||||||
	    |			    			     			   | 			    |
 | 
					 | 
				
			||||||
	    +----------------------------------------------------------------------+------------------------+
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		    first								  second		    
 | 
					 | 
				
			||||||
		    element								  element		    
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	UNSIGNED_SHORT_15_1:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	      15  14  13  12  11  10  9   8   7   6   5   4   3   2   1   0
 | 
					 | 
				
			||||||
	    +-----------------------------------------------------------+---+
 | 
					 | 
				
			||||||
	    |					    			|   |
 | 
					 | 
				
			||||||
	    +-----------------------------------------------------------+---+
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	    		first						second	
 | 
					 | 
				
			||||||
			element						element	
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	UNSIGNED_SHORT_1_15_REV:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	      15  14  13  12  11  10  9   8   7   6   5   4   3   2   1   0
 | 
					 | 
				
			||||||
	    +---+-----------------------------------------------------------+
 | 
					 | 
				
			||||||
	    |	|		     					    |
 | 
					 | 
				
			||||||
	    +---+-----------------------------------------------------------+
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	    second		    first
 | 
					 | 
				
			||||||
	    element		    element
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The assignment of elements to fields in the packed pixel is as
 | 
					 | 
				
			||||||
    described in the table below:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			   First       Second	Third	    Fourth
 | 
					 | 
				
			||||||
	Format		   Element     Element	Element     Element
 | 
					 | 
				
			||||||
	------		   -------     -------	-------     -------
 | 
					 | 
				
			||||||
	RGB		   red	       green	blue
 | 
					 | 
				
			||||||
	RGBA		   red	       green	blue	    alpha
 | 
					 | 
				
			||||||
	BGRA		   blue	       green	red	    alpha
 | 
					 | 
				
			||||||
	ABGR_EXT	   alpha       blue	green	    red
 | 
					 | 
				
			||||||
	CMYK_EXT	   cyan	       magenta	yellow	    black
 | 
					 | 
				
			||||||
	DEPTH_STENCIL_MESA depth       stencil
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 4 of the 1.1 Specification (Per-Fragment Operations
 | 
					 | 
				
			||||||
and the Frame Buffer)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The new format is added to the discussion of Obtaining Pixels from the
 | 
					 | 
				
			||||||
    Framebuffer.  It should read " If the <format> is one of RED, GREEN,
 | 
					 | 
				
			||||||
    BLUE, ALPHA, RGB, RGBA, ABGR_EXT, LUMINANCE, or LUMINANCE_ALPHA, and
 | 
					 | 
				
			||||||
    the GL is in color index mode, then the color index is obtained."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The new format is added to the discussion of Index Lookup.  It should
 | 
					 | 
				
			||||||
    read "If <format> is one of RED, GREEN, BLUE, ALPHA, RGB, RGBA,
 | 
					 | 
				
			||||||
    ABGR_EXT, LUMINANCE, or LUMINANCE_ALPHA, then the index is used to
 | 
					 | 
				
			||||||
    reference 4 tables of color components: PIXEL_MAP_I_TO_R,
 | 
					 | 
				
			||||||
    PIXEL_MAP_I_TO_G, PIXEL_MAP_I_TO_B, and PIXEL_MAP_I_TO_A."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 5 of the 1.1 Specification (Special Functions)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 6 of the 1.1 Specification (State and State Requests)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to the GLX Specification
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLX Protocol
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    TBD
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Errors
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New State
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Revision History
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Version 1.0 - 23 Sep 2000
 | 
					 | 
				
			||||||
        Keith's original version.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Version 1.1 - 3 Nov 2000
 | 
					 | 
				
			||||||
        Brian's edits, assigned values to new enums.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -1,90 +0,0 @@
 | 
				
			|||||||
Name
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    MESA_pixmap_colormap
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Name Strings
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    GLX_MESA_pixmap_colormap
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Contact
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Brian Paul (brian 'at' mesa3d.org)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Shipping since Mesa 1.2.8 in May, 1996.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Version
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Last Modified Date:  8 June 2000
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Number
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    216
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dependencies
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    OpenGL 1.0 or later is required.
 | 
					 | 
				
			||||||
    GLX 1.0 or later is required.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Overview
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Since Mesa allows RGB rendering into drawables with PseudoColor,
 | 
					 | 
				
			||||||
    StaticColor, GrayScale and StaticGray visuals, Mesa needs a colormap
 | 
					 | 
				
			||||||
    in order to compute pixel values during rendering.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The colormap associated with a window can be queried with normal
 | 
					 | 
				
			||||||
    Xlib functions but there is no colormap associated with pixmaps.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The glXCreateGLXPixmapMESA function is an alternative to glXCreateGLXPixmap
 | 
					 | 
				
			||||||
    which allows specification of a colormap.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
IP Status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Open-source; freely implementable.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Issues
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Procedures and Functions
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    GLXPixmap glXCreateGLXPixmapMESA( Display *dpy, XVisualInfo *visual,
 | 
					 | 
				
			||||||
				      Pixmap pixmap, Colormap cmap );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Tokens
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 3 of the GLX 1.3 Specification (Functions and Errors)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Add to section 3.4.2 Off Screen Rendering
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The Mesa implementation of GLX allows RGB rendering into X windows and
 | 
					 | 
				
			||||||
    pixmaps of any visual class, not just TrueColor or DirectColor.  In order
 | 
					 | 
				
			||||||
    to compute pixel values from RGB values Mesa requires a colormap.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The function
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	GLXPixmap glXCreateGLXPixmapMESA( Display *dpy, XVisualInfo *visual,
 | 
					 | 
				
			||||||
					  Pixmap pixmap, Colormap cmap );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    allows one to create a GLXPixmap with a specific colormap.  The image
 | 
					 | 
				
			||||||
    rendered into the pixmap may then be copied to a window (which uses the
 | 
					 | 
				
			||||||
    same colormap and visual) with the expected results.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLX Protocol
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None since this is a client-side extension.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Errors
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New State
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Revision History
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    8 June 2000 - initial specification
 | 
					 | 
				
			||||||
@@ -1,357 +0,0 @@
 | 
				
			|||||||
Name
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    MESA_program_debug
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Name Strings
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    GL_MESA_program_debug
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Contact
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Brian Paul (brian @ tungstengraphics.com)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    XXX - Not complete yet!!!
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Version
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Last Modified Date: July 20, 2003
 | 
					 | 
				
			||||||
    Author Revision: 1.0
 | 
					 | 
				
			||||||
    $Date: 2003/09/23 14:46:11 $ $Revision: 1.3 $
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Number
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    TBD
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dependencies
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    OpenGL 1.4 is required
 | 
					 | 
				
			||||||
    The extension is written against the OpenGL 1.4 specification.
 | 
					 | 
				
			||||||
    ARB_vertex_program or ARB_fragment_program or NV_vertex_program
 | 
					 | 
				
			||||||
    or NV_fragment_program is required.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Overview
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The extension provides facilities for implementing debuggers for
 | 
					 | 
				
			||||||
    vertex and fragment programs.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The concept is that vertex and fragment program debuggers will be
 | 
					 | 
				
			||||||
    implemented outside of the GL as a utility package.  This extension
 | 
					 | 
				
			||||||
    only provides the minimal hooks required to implement a debugger.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    There are facilities to do the following:
 | 
					 | 
				
			||||||
    1. Have the GL call a user-specified function prior to executing
 | 
					 | 
				
			||||||
       each vertex or fragment instruction.
 | 
					 | 
				
			||||||
    2. Query the current program string's execution position.
 | 
					 | 
				
			||||||
    3. Query the current values of intermediate program values.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The main feature is the ProgramCallbackMESA function.  It allows the
 | 
					 | 
				
			||||||
    user to register a callback function with the GL.  The callback will
 | 
					 | 
				
			||||||
    be called prior to executing each vertex or fragment program instruction.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    From within the callback, the user may issue Get* commands to
 | 
					 | 
				
			||||||
    query current GL state.  The GetProgramRegisterfvMESA function allows
 | 
					 | 
				
			||||||
    current program values to be queried (such as temporaries, input
 | 
					 | 
				
			||||||
    attributes, and result registers).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    There are flags for enabling/disabling the program callbacks.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The current execution position (as an offset from the start of the
 | 
					 | 
				
			||||||
    program string) can be queried with
 | 
					 | 
				
			||||||
    GetIntegerv(GL_FRAGMENT_PROGRAM_POSITION_MESA, &pos) or
 | 
					 | 
				
			||||||
    GetIntegerv(GL_VERTEX_PROGRAM_POSITION_MESA, &pos).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
IP Status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Issues
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    1. Is this the right model for a debugger?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       It seems prudent to minimize the scope of this extension and leave
 | 
					 | 
				
			||||||
       it up to the developer (or developer community) to write debuggers
 | 
					 | 
				
			||||||
       that layer on top of this extension.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       If the debugger were fully implemented within the GL it's not
 | 
					 | 
				
			||||||
       clear how terminal and GUI-based interfaces would work, for
 | 
					 | 
				
			||||||
       example.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    2. There aren't any other extensions that register callbacks with
 | 
					 | 
				
			||||||
       the GL.  Isn't there another solution?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       If we want to be able to single-step through vertex/fragment
 | 
					 | 
				
			||||||
       programs I don't see another way to do it.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    3. How do we prevent the user from doing something crazy in the
 | 
					 | 
				
			||||||
       callback function, like trying to call glBegin (leading to
 | 
					 | 
				
			||||||
       recursion)?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       The rule is that the callback function can only issue glGet*()
 | 
					 | 
				
			||||||
       functions and no other GL commands.  It could be difficult to
 | 
					 | 
				
			||||||
       enforce this, however.  Therefore, calling any non-get GL
 | 
					 | 
				
			||||||
       command from within the callback will result in undefined
 | 
					 | 
				
			||||||
       results.    
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    4. Is this extension amenable to hardware implementation?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       Hopefully, but if not, the GL implementation will have to fall
 | 
					 | 
				
			||||||
       back to a software path when debugging.  This may be acceptable
 | 
					 | 
				
			||||||
       for debugging.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    5. What's the <data> parameter to ProgramCallbackMESA for?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       It's a common programming practice to associate a user-supplied
 | 
					 | 
				
			||||||
       value with callback functions.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    6. Debuggers often allow one to modify intermediate program values,
 | 
					 | 
				
			||||||
       then continue.  Does this extension support that?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       No.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Procedures and Functions (and datatypes)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    typedef void (*programcallbackMESA)(enum target, void *data)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    void ProgramCallbackMESA(enum target, programcallbackMESA callback,
 | 
					 | 
				
			||||||
                             void *data)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    void GetProgramRegisterfvMESA(enum target, sizei len,
 | 
					 | 
				
			||||||
                                  const ubyte *registerName, float *v)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Tokens
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Accepted by the <cap> parameter of Enable, Disable, IsEnabled,
 | 
					 | 
				
			||||||
    GetBooleanv, GetDoublev, GetFloatv and GetIntegerv:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        FRAGMENT_PROGRAM_CALLBACK_MESA      0x8bb1
 | 
					 | 
				
			||||||
        VERTEX_PROGRAM_CALLBACK_MESA        0x8bb4
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Accepted by the <pname> parameter GetBooleanv, GetDoublev,
 | 
					 | 
				
			||||||
    GetFloatv and GetIntegerv:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        FRAGMENT_PROGRAM_POSITION_MESA      0x8bb0
 | 
					 | 
				
			||||||
        VERTEX_PROGRAM_POSITION_MESA        0x8bb4
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Accepted by the <pname> parameter of GetPointerv:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA 0x8bb2
 | 
					 | 
				
			||||||
        FRAGMENT_PROGRAM_CALLBACK_DATA_MESA 0x8bb3
 | 
					 | 
				
			||||||
        VERTEX_PROGRAM_CALLBACK_FUNC_MESA   0x8bb6
 | 
					 | 
				
			||||||
        VERTEX_PROGRAM_CALLBACK_DATA_MESA   0x8bb7
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 2 of the OpenGL 1.4 Specification (OpenGL Operation)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 3 of the OpenGL 1.4 Specification (Rasterization)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 4 of the OpenGL 1.4 Specification (Per-Fragment
 | 
					 | 
				
			||||||
Operations and the Frame Buffer)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 5 of the OpenGL 1.4 Specification (Special Functions)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    In section 5.4 "Display Lists", page 202, add the following command
 | 
					 | 
				
			||||||
    to the list of those that are not compiled into display lists:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        ProgramCallbackMESA.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Add a new section 5.7 "Callback Functions"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The function
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        void ProgramCallbackMESA(enum target, programcallbackMESA callback,
 | 
					 | 
				
			||||||
                                 void *data)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    registers a user-defined callback function with the GL.  <target>
 | 
					 | 
				
			||||||
    may be FRAGMENT_PROGRAM_ARB or VERTEX_PROGRAM_ARB.  The enabled
 | 
					 | 
				
			||||||
    callback functions registered with these targets will be called
 | 
					 | 
				
			||||||
    prior to executing each instruction in the current fragment or
 | 
					 | 
				
			||||||
    vertex program, respectively.  The callbacks are enabled and
 | 
					 | 
				
			||||||
    disabled by calling Enable or Disable with <cap>
 | 
					 | 
				
			||||||
    FRAGMENT_PROGRAM_ARB or VERTEX_PROGRAM_ARB.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The callback function's signature must match the typedef
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        typedef void (*programcallbackMESA)(enum target, void *data)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    When the callback function is called, <target> will either be
 | 
					 | 
				
			||||||
    FRAGMENT_PROGRAM_ARB or VERTEX_PROGRAM_ARB to indicate which
 | 
					 | 
				
			||||||
    program is currently executing and <data> will be the value
 | 
					 | 
				
			||||||
    specified when ProgramCallbackMESA was called.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    From within the callback function, only the following GL commands
 | 
					 | 
				
			||||||
    may be called:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        GetBooleanv
 | 
					 | 
				
			||||||
        GetDoublev
 | 
					 | 
				
			||||||
        GetFloatv
 | 
					 | 
				
			||||||
        GetIntegerv
 | 
					 | 
				
			||||||
        GetProgramLocalParameter
 | 
					 | 
				
			||||||
        GetProgramEnvParameter
 | 
					 | 
				
			||||||
        GetProgramRegisterfvMESA
 | 
					 | 
				
			||||||
        GetProgramivARB
 | 
					 | 
				
			||||||
        GetProgramStringARB
 | 
					 | 
				
			||||||
        GetError
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Calling any other command from within the callback results in
 | 
					 | 
				
			||||||
    undefined behaviour.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 6 of the OpenGL 1.4 Specification (State and
 | 
					 | 
				
			||||||
State Requests)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Add a new section 6.1.3 "Program Value Queries":
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The command
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        void GetProgramRegisterfvMESA(enum target, sizei len,
 | 
					 | 
				
			||||||
                                      const ubyte *registerName,
 | 
					 | 
				
			||||||
                                      float *v)
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
    Is used to query the value of program variables and registers
 | 
					 | 
				
			||||||
    during program execution.  GetProgramRegisterfvMESA may only be
 | 
					 | 
				
			||||||
    called from within a callback function registered with
 | 
					 | 
				
			||||||
    ProgramCallbackMESA.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <registerName> and <len> specify the name a variable, input
 | 
					 | 
				
			||||||
    attribute, temporary, or result register in the program string.
 | 
					 | 
				
			||||||
    The current value of the named variable is returned as four
 | 
					 | 
				
			||||||
    values in <v>.  If <name> doesn't exist in the program string,
 | 
					 | 
				
			||||||
    the error INVALID_OPERATION is generated.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Appendix A of the OpenGL 1.4 Specification (Invariance)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to the AGL/GLX/WGL Specifications
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLX Protocol
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    XXX TBD
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dependencies on NV_vertex_program and NV_fragment_program
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    If NV_vertex_program and/or NV_fragment_program are supported,
 | 
					 | 
				
			||||||
    vertex and/or fragment programs defined by those extensions may
 | 
					 | 
				
			||||||
    be debugged as well.  Register queries will use the syntax used
 | 
					 | 
				
			||||||
    by those extensions (i.e. "v[X]" to query vertex attributes,
 | 
					 | 
				
			||||||
    "o[X]" for vertex outputs, etc.)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Errors
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    INVALID_OPERATION is generated if ProgramCallbackMESA is called
 | 
					 | 
				
			||||||
    between Begin and End.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    INVALID_ENUM is generated by ProgramCallbackMESA if <target> is not
 | 
					 | 
				
			||||||
    a supported vertex or fragment program type.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Note: INVALID_OPERAION IS NOT generated by GetProgramRegisterfvMESA,
 | 
					 | 
				
			||||||
    GetBooleanv, GetDoublev, GetFloatv, or GetIntegerv if called between
 | 
					 | 
				
			||||||
    Begin and End when a vertex or fragment program is currently executing.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    INVALID_ENUM is generated by ProgramCallbackMESA,
 | 
					 | 
				
			||||||
    GetProgramRegisterfvMESA if <target> is not a program target supported
 | 
					 | 
				
			||||||
    by ARB_vertex_program, ARB_fragment_program (or NV_vertex_program or
 | 
					 | 
				
			||||||
    NV_fragment_program).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    INVALID_VALUE is generated by GetProgramRegisterfvMESA if <registerName>
 | 
					 | 
				
			||||||
    does not name a known program register or variable.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    INVALID_OPERATION is generated by GetProgramRegisterfvMESA when a
 | 
					 | 
				
			||||||
    register query is attempted for a program target that's not currently
 | 
					 | 
				
			||||||
    being executed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New State
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    XXX finish
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(table 6.N, p. ###)
 | 
					 | 
				
			||||||
                                                            Initial
 | 
					 | 
				
			||||||
    Get Value                            Type Get Command   Value    Description  Sec.  Attribute
 | 
					 | 
				
			||||||
    ---------                            ---- -----------   -----    -----------  ----  ---------
 | 
					 | 
				
			||||||
    FRAGMENT_PROGRAM_CALLBACK_MESA        B   IsEnabled     FALSE    XXX          XXX   enable
 | 
					 | 
				
			||||||
    VERTEX_PROGRAM_CALLBACK_MESA          B   IsEnabled     FALSE    XXX          XXX   enable
 | 
					 | 
				
			||||||
    FRAGMENT_PROGRAM_POSITION_MESA        Z+  GetIntegerv   -1       XXX          XXX   -
 | 
					 | 
				
			||||||
    VERTEX_PROGRAM_POSITION_MESA          Z+  GetIntegerv   -1       XXX          XXX   -
 | 
					 | 
				
			||||||
    FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA   P   GetPointerv   NULL     XXX          XXX   -
 | 
					 | 
				
			||||||
    VERTEX_PROGRAM_CALLBACK_FUNC_MESA     P   GetPointerv   NULL     XXX          XXX   -
 | 
					 | 
				
			||||||
    FRAGMENT_PROGRAM_CALLBACK_DATA_MESA   P   GetPointerv   NULL     XXX          XXX   -
 | 
					 | 
				
			||||||
    VERTEX_PROGRAM_CALLBACK_DATA_MESA     P   GetPointerv   NULL     XXX          XXX   -
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    XXX more?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Implementation Dependent State
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Revision History
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    8 July 2003
 | 
					 | 
				
			||||||
        Initial draft. (Brian Paul)
 | 
					 | 
				
			||||||
    11 July 2003
 | 
					 | 
				
			||||||
        Second draft. (Brian Paul)
 | 
					 | 
				
			||||||
    20 July 2003
 | 
					 | 
				
			||||||
        Third draft.  Lots of fundamental changes. (Brian Paul)
 | 
					 | 
				
			||||||
    23 July 2003
 | 
					 | 
				
			||||||
        Added chapter 5 and 6 spec language. (Brian Paul)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Example Usage
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   The following is a very simple example of how this extension may
 | 
					 | 
				
			||||||
   be used to print the values of R0, R1, R2 and R3 while executing
 | 
					 | 
				
			||||||
   vertex programs.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* This is called by the GL when the vertex program is executing.
 | 
					 | 
				
			||||||
     * We can only make glGet* calls from within this function!
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    void DebugCallback(GLenum target, GLvoid *data)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
       GLint pos;
 | 
					 | 
				
			||||||
       GLuint i;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       /* Get PC and current instruction string */
 | 
					 | 
				
			||||||
       glGetIntegerv(GL_VERTEX_PROGRAM_POSITION_ARB, &pos);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       printf("Current position: %d\n", pos);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       printf("Current temporary registers:\n");
 | 
					 | 
				
			||||||
       for (i = 0; i < 4; i++) {
 | 
					 | 
				
			||||||
	  GLfloat v[4];
 | 
					 | 
				
			||||||
	  char s[10];
 | 
					 | 
				
			||||||
	  sprintf(s, "R%d", i);
 | 
					 | 
				
			||||||
	  glGetProgramRegisterfvMESA(GL_VERTEX_PROGRAM_ARB, strlen(s), s, v);
 | 
					 | 
				
			||||||
	  printf("R%d = %g, %g, %g, %g\n", i, v[0], v[1], v[2], v[3]);
 | 
					 | 
				
			||||||
       }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /*
 | 
					 | 
				
			||||||
     * elsewhere...
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* Register our debugger callback function */
 | 
					 | 
				
			||||||
    glProgramCallbackMESA(GL_VERTEX_PROGRAM_ARB, DebugCallback, NULL);
 | 
					 | 
				
			||||||
    glEnable(GL_VERTEX_PROGRAM_CALLBACK_MESA);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* define/bind a vertex program */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    glEnable(GL_VERTEX_PROGRAM);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* render something */
 | 
					 | 
				
			||||||
    glBegin(GL_POINTS);
 | 
					 | 
				
			||||||
    glVertex2f(0, 0);
 | 
					 | 
				
			||||||
    glEnd();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -1,85 +0,0 @@
 | 
				
			|||||||
Name
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    MESA_release_buffers
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Name Strings
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    GLX_MESA_release_buffers
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Contact
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Brian Paul (brian 'at' mesa3d.org)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Shipping since Mesa 2.0 in October, 1996.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Version
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Last Modified Date:  8 June 2000
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Number
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    217
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dependencies
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    OpenGL 1.0 or later is required.
 | 
					 | 
				
			||||||
    GLX 1.0 or later is required.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Overview
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Mesa's implementation of GLX is entirely implemented on the client side.
 | 
					 | 
				
			||||||
    Therefore, Mesa cannot immediately detect when an X window or pixmap is
 | 
					 | 
				
			||||||
    destroyed in order to free any ancilliary data associated with the window
 | 
					 | 
				
			||||||
    or pixmap.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The glxMesaReleaseBuffers() function can be used to explicitly indicate
 | 
					 | 
				
			||||||
    when the back color buffer, depth buffer, stencil buffer, and/or accum-
 | 
					 | 
				
			||||||
    ulation buffer associated with a drawable can be freed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
IP Status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Open-source; freely implementable.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Issues
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Procedures and Functions
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Bool glXReleaseBuffersMESA( Display *dpy, GLXDrawable d );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Tokens
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 3 of the GLX 1.3 Specification (Functions and Errors)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The function
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	Bool glXReleaseBuffersMESA( Display *dpy, GLXDrawable d );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    causes all software ancilliary buffers (back buffer, depth, stencil,
 | 
					 | 
				
			||||||
    accum, etc) associated with the named drawable to be immediately
 | 
					 | 
				
			||||||
    deallocated.  True is returned if <d> is a valid Mesa GLX drawable,
 | 
					 | 
				
			||||||
    else False is returned.  After calling glXReleaseBuffersMESA, the
 | 
					 | 
				
			||||||
    drawable should no longer be used for GL rendering.  Results of
 | 
					 | 
				
			||||||
    attempting to do so are undefined.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLX Protocol
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None, since this is a client-side operation.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Errors
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New State
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Revision History
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    8 June 2000 - initial specification
 | 
					 | 
				
			||||||
@@ -16,11 +16,11 @@ Status
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Version
 | 
					Version
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $Id: MESA_resize_buffers.spec,v 1.2 2000/04/04 23:29:32 brianp Exp $
 | 
					    $Id: MESA_resize_buffers.spec,v 1.1 1999/07/20 00:30:41 brianp Exp $
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Number
 | 
					Number
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    196
 | 
					    XXX none assigned
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Dependencies
 | 
					Dependencies
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,85 +0,0 @@
 | 
				
			|||||||
Name
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    MESA_set_3dfx_mode
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Name Strings
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    GLX_MESA_set_3dfx_mode
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Contact
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Brian Paul (brian 'at' mesa3d.org)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Shipping since Mesa 2.6 in February, 1998.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Version
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Last Modified Date:  8 June 2000
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Number
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    218
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dependencies
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    OpenGL 1.0 or later is required.
 | 
					 | 
				
			||||||
    GLX 1.0 or later is required.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Overview
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The Mesa Glide driver allows full-screen rendering or rendering into
 | 
					 | 
				
			||||||
    an X window.  The glXSet3DfxModeMESA() function allows an application
 | 
					 | 
				
			||||||
    to switch between full-screen and windowed rendering.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
IP Status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Open-source; freely implementable.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Issues
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Procedures and Functions
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    GLboolean glXSet3DfxModeMESA( GLint mode );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Tokens
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    GLX_3DFX_WINDOW_MODE_MESA	    0x1
 | 
					 | 
				
			||||||
    GLX_3DFX_FULLSCREEN_MODE_MESA   0x2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 3 of the GLX 1.3 Specification (Functions and Errors)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The Mesa Glide device driver allows either rendering in full-screen
 | 
					 | 
				
			||||||
    mode or rendering into an X window.  An application can switch between
 | 
					 | 
				
			||||||
    full-screen and window rendering with the command:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	GLboolean glXSet3DfxModeMESA( GLint mode );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <mode> may either be GLX_3DFX_WINDOW_MODE_MESA to indicate window
 | 
					 | 
				
			||||||
    rendering or GLX_3DFX_FULLSCREEN_MODE_MESA to indicate full-screen mode.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    GL_TRUE is returned if <mode> is valid and the operation completed
 | 
					 | 
				
			||||||
    normally.  GL_FALSE is returned if <mode> is invalid or if the Glide
 | 
					 | 
				
			||||||
    driver is not being used.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Note that only one drawable and context can be created at any given
 | 
					 | 
				
			||||||
    time with the Mesa Glide driver.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLX Protocol
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None since this is a client-side extension.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Errors
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New State
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Revision History
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    8 June 2000 - initial specification
 | 
					 | 
				
			||||||
@@ -1,191 +0,0 @@
 | 
				
			|||||||
Name
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    MESA_sprite_point
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Name Strings
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    GL_MESA_sprite_point
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Contact
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Brian Paul, VA Linux Systems Inc. (brianp 'at' valinux.com)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Obsolete - see GL_ARB_point_sprite.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Version
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    $Id: MESA_sprite_point.spec,v 1.2 2003/09/19 14:58:21 brianp Exp $
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Number
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ???
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dependencies
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    GL_EXT_point_parameters effects the definition of this extension
 | 
					 | 
				
			||||||
    GL_ARB_multitexture effects the definition of this extension
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Overview
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
    This extension modifies the way in which points are rendered,
 | 
					 | 
				
			||||||
    specifically when they're textured.  When SPRITE_POINT_MESA is enabled
 | 
					 | 
				
			||||||
    a point is rendered as if it were a quadrilateral with unique texture
 | 
					 | 
				
			||||||
    coordinates at each vertex.  This extension effectively turns points
 | 
					 | 
				
			||||||
    into sprites which may be rendered more easily and quickly than using
 | 
					 | 
				
			||||||
    conventional textured quadrilaterals.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    When using point size > 1 or attenuated points this extension is an
 | 
					 | 
				
			||||||
    effective way to render many small sprite images for particle systems
 | 
					 | 
				
			||||||
    or other effects.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Issues:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    1. How are the texture coordinates computed?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       The lower-left corner has texture coordinate (0,0,r,q).
 | 
					 | 
				
			||||||
       The lower-right, (1,0,r,q).  The upper-right, (1,1,r,q).
 | 
					 | 
				
			||||||
       The upper-left, (0,1,r,q).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    2. What about texgen and texture matrices?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       Texgen and the texture matrix have no effect on the point's s and t
 | 
					 | 
				
			||||||
       texture coordinates.  The r and q coordinates may have been computed
 | 
					 | 
				
			||||||
       by texgen or the texture matrix.  Note that with a 3D texture and/or
 | 
					 | 
				
			||||||
       texgen that the r coordinate could be used to select a slice in the
 | 
					 | 
				
			||||||
       3D texture.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    3. What about point smoothing?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       When point smoothing is enabled, a triangle fan could be rendered
 | 
					 | 
				
			||||||
       to approximate a circular point.  This could be problematic to
 | 
					 | 
				
			||||||
       define and implement so POINT_SMOOTH is ignored when drawing sprite
 | 
					 | 
				
			||||||
       points.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       Smoothed points can be approximated by using an appropriate texture
 | 
					 | 
				
			||||||
       images, alpha testing and blending.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       POLYGON_SMOOTH does effect the rendering of the quadrilateral, however.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    4. What about sprite rotation?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       There is none.  Sprite points are always rendered as window-aligned
 | 
					 | 
				
			||||||
       squares.  One could define rotated texture images if desired.  A 3D
 | 
					 | 
				
			||||||
       texture and appropriate texture r coordinates could be used to
 | 
					 | 
				
			||||||
       effectively specify image rotation per point.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    5. What about POLYGON_MODE?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       POLYGON_MODE does not effect the rasterization of the quadrilateral.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    6. What about POLYGON_CULL?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       TBD.  Polygon culling is normally specified and implemented in the
 | 
					 | 
				
			||||||
       transformation stage of OpenGL.  However, some rasterization hardware
 | 
					 | 
				
			||||||
       implements it later during triangle setup.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       Polygon culling wouldn't be useful for sprite points since the
 | 
					 | 
				
			||||||
       quadrilaterals are always defined in counter-clockwise order in
 | 
					 | 
				
			||||||
       window space.  For that reason, polygon culling should probably be
 | 
					 | 
				
			||||||
       ignored.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    7. Should sprite points be alpha-attenuated if their size is below the
 | 
					 | 
				
			||||||
       point parameter's threshold size?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    8. Should there be an advertisized maximum sprite point size?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       No.  Since we're rendering the point as a quadrilateral there's no
 | 
					 | 
				
			||||||
       need to limit the size.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Procedures and Functions
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Tokens
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    Accepted by the <pname> parameter of Enable, Disable, IsEnabled,
 | 
					 | 
				
			||||||
    GetIntegerv, GetBooleanv, GetFloatv and GetDoublev:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	SPRITE_POINT_MESA		0x????
 | 
					 | 
				
			||||||
        MAX_SPRITE_POINT_SIZE_MESA      0x????   (need this?)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 2 of the 1.1 Specification (OpenGL Operation)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 3 of the 1.1 Specification (Rasterization)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Section ???.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    When SPRITE_POINT_MESA is enabled points are rasterized as screen-
 | 
					 | 
				
			||||||
    aligned quadrilaterals.  If the four vertices of the quadrilateral
 | 
					 | 
				
			||||||
    are labeled A, B, C, and D, starting at the lower-left corner and moving
 | 
					 | 
				
			||||||
    counter-clockwise around the quadrilateral, then the vertex and
 | 
					 | 
				
			||||||
    texture coordinates are computed as follows:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      vertex   window coordinate       texture coordinate
 | 
					 | 
				
			||||||
        A      (x-r, y-r, z, w)          (0, 0, r, q)
 | 
					 | 
				
			||||||
        B      (x+r, y-r, z, w)          (1, 0, r, q)
 | 
					 | 
				
			||||||
        C      (x+r, y+r, z, w)          (1, 1, r, q)
 | 
					 | 
				
			||||||
        D      (x-r, y+r, z, w)          (0, 1, r, q)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    where x, y, z, w are the point's window coordinates, r and q are the
 | 
					 | 
				
			||||||
    point's 3rd and 4th texture coordinates  and r is half the point's
 | 
					 | 
				
			||||||
    size.  The other vertex attributes (such as the color and fog coordinate)
 | 
					 | 
				
			||||||
    are simply duplicated from the original point vertex.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Point size may either be specified with PointSize or computed
 | 
					 | 
				
			||||||
    according to the EXT_point_parameters extension.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The new texture coordinates are not effected by texgen or the texture
 | 
					 | 
				
			||||||
    matrix.  Note, however, that the texture r and q coordinates are passed
 | 
					 | 
				
			||||||
    unchanged and may have been computed with texgen and/or the texture
 | 
					 | 
				
			||||||
    matrix.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    If multiple texture units are present the same texture coordinate is
 | 
					 | 
				
			||||||
    used for all texture units.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The point is then rendered as if it were a quadrilateral using the
 | 
					 | 
				
			||||||
    normal point sampling rules.  POLYGON_MODE does not effect the
 | 
					 | 
				
			||||||
    rasterization of the quadrilateral but POLYGON_SMOOTH does.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    POINT_SMOOTH has no effect when SPRITE_POINT_MESA is enabled.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 4 of the 1.1 Specification (Per-Fragment Operations
 | 
					 | 
				
			||||||
and the Frame Buffer)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 5 of the 1.1 Specification (Special Functions)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 6 of the 1.1 Specification (State and State Requests)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to the GLX Specification
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLX Protocol
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    TBD
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Errors
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New State
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Add boolean variable SPRITE_POINT_MESA to the point attribute group.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Revision History
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Version 1.0 - 4 Dec 2000
 | 
					 | 
				
			||||||
        Original draft.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -1,132 +0,0 @@
 | 
				
			|||||||
Name
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    MESA_swap_control
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Name Strings
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    GLX_MESA_swap_control
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Contact
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Ian Romanick, IBM, idr at us.ibm.com
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Deployed in DRI drivers post-XFree86 4.3.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Version
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Date: 5/1/2003   Revision: 1.1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Number
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ???
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dependencies
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Based on GLX_SGI_swap_control version 1.9 and WGL_EXT_swap_control
 | 
					 | 
				
			||||||
    version 1.5.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Overview
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    This extension allows an application to specify a minimum periodicity
 | 
					 | 
				
			||||||
    of color buffer swaps, measured in video frame periods.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Issues
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    * Should implementations that export GLX_MESA_swap_control also export
 | 
					 | 
				
			||||||
      GL_EXT_swap_control for compatibility with WGL_EXT_swap_control?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    UNRESOLVED.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Procedures and Functions
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    int glXSwapIntervalMESA(int interval)
 | 
					 | 
				
			||||||
    int glXGetSwapIntervalMESA(void)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Tokens
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 2 of the 1.4 GL Specification (OpenGL Operation)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 3 of the 1.4 GL Specification (Rasterization)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 4 of the 1.4 GL Specification (Per-Fragment Operations
 | 
					 | 
				
			||||||
and the Framebuffer)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 5 of the 1.4 GL Specification (Special Functions)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 6 of the 1.4 GL Specification (State and State Requests)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to the GLX 1.3 Specification
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    [Add the following to Section 3.3.10 of the GLX Specification (Double
 | 
					 | 
				
			||||||
     Buffering)]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    glXSwapIntervalMESA specifies the minimum number of video frame periods
 | 
					 | 
				
			||||||
    per buffer swap.  (e.g. a value of two means that the color buffers
 | 
					 | 
				
			||||||
    will be swapped at most every other video frame.)  A return value
 | 
					 | 
				
			||||||
    of zero indicates success; otherwise an error occurred.  The interval
 | 
					 | 
				
			||||||
    takes effect when glXSwapBuffers is first called subsequent to the
 | 
					 | 
				
			||||||
    glXSwapIntervalMESA call.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    A video frame period is the time required by the monitor to display a 
 | 
					 | 
				
			||||||
    full frame of video data.  In the case of an interlaced monitor,
 | 
					 | 
				
			||||||
    this is typically the time required to display both the even and odd 
 | 
					 | 
				
			||||||
    fields of a frame of video data.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    If <interval> is set to a value of 0, buffer swaps are not synchron-
 | 
					 | 
				
			||||||
    ized to a video frame.  The <interval> value is silently clamped to
 | 
					 | 
				
			||||||
    the maximum implementation-dependent value supported before being
 | 
					 | 
				
			||||||
    stored.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The swap interval is not part of the render context state.  It cannot
 | 
					 | 
				
			||||||
    be pushed or popped.  The current swap interval for the window
 | 
					 | 
				
			||||||
    associated with the current context can be obtained by calling
 | 
					 | 
				
			||||||
    glXGetSwapIntervalMESA.  The default swap interval is 0.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    On XFree86, setting the environment variable LIBGL_THROTTLE_REFRESH sets
 | 
					 | 
				
			||||||
    the swap interval to 1.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Errors
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    glXSwapIntervalMESA returns GLX_BAD_VALUE if parameter <interval> is
 | 
					 | 
				
			||||||
    less than zero.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    glXSwapIntervalMESA returns GLX_BAD_CONTEXT if there is no current
 | 
					 | 
				
			||||||
    GLXContext.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLX Protocol
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.  This extension only extends to direct rendering contexts.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New State
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Get Value		Get Command	Type	    Initial Value
 | 
					 | 
				
			||||||
    ---------		-----------	----	    -------------
 | 
					 | 
				
			||||||
    [swap interval]	GetSwapInterval	Z+	    0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Implementation Dependent State
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Revision History
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    1.1,  5/1/03   Added the issues section and contact information.
 | 
					 | 
				
			||||||
    	  	   Changed the default swap interval to 0.
 | 
					 | 
				
			||||||
    1.0,  3/17/03  Initial version based on GLX_SGI_swap_control and
 | 
					 | 
				
			||||||
                   WGL_EXT_swap_control.
 | 
					 | 
				
			||||||
@@ -1,201 +0,0 @@
 | 
				
			|||||||
Name
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    MESA_swap_frame_usage
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Name Strings
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    GLX_MESA_swap_frame_usage
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Contact
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Ian Romanick, IBM, idr at us.ibm.com
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Deployed in DRI drivers post-XFree86 4.3.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Version
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Date: 5/1/2003   Revision: 1.1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Number
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ???
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dependencies
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    GLX_SGI_swap_control affects the definition of this extension.
 | 
					 | 
				
			||||||
    GLX_MESA_swap_control affects the definition of this extension.
 | 
					 | 
				
			||||||
    GLX_OML_sync_control affects the definition of this extension.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Based on WGL_I3D_swap_frame_usage version 1.3.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Overview
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    This extension allows an application to deterine what portion of the
 | 
					 | 
				
			||||||
    swap period has elapsed since the last swap operation completed.  The
 | 
					 | 
				
			||||||
    "usage" value is a floating point value on the range [0,max] which is
 | 
					 | 
				
			||||||
    calculated as follows:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                              td
 | 
					 | 
				
			||||||
                   percent = ----
 | 
					 | 
				
			||||||
                              tf
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    where td is the time measured from the last completed buffer swap (or
 | 
					 | 
				
			||||||
    call to enable the statistic) to when the next buffer swap completes, tf
 | 
					 | 
				
			||||||
    is the entire time for a frame which may be multiple screen refreshes
 | 
					 | 
				
			||||||
    depending on the swap interval as set by the GLX_SGI_swap_control or
 | 
					 | 
				
			||||||
    GLX_OML_sync_control extensions. 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The value, percent, indicates the amount of time spent between the
 | 
					 | 
				
			||||||
    completion of the two swaps.  If the value is in the range [0,1], the
 | 
					 | 
				
			||||||
    buffer swap occurred within the time period required to maintain a
 | 
					 | 
				
			||||||
    constant frame rate.  If the value is in the range (1,max], a constant
 | 
					 | 
				
			||||||
    frame rate was not achieved.  The value indicates the number of frames
 | 
					 | 
				
			||||||
    required to draw.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    This definition of "percent" differs slightly from
 | 
					 | 
				
			||||||
    WGL_I3D_swap_frame_usage.  In WGL_I3D_swap_frame_usage, the measurement
 | 
					 | 
				
			||||||
    is taken from the completion of one swap to the issuance of the next.
 | 
					 | 
				
			||||||
    This representation may not be as useful as measuring between
 | 
					 | 
				
			||||||
    completions, as a significant amount of time may pass between the
 | 
					 | 
				
			||||||
    issuance of a swap and the swap actually occuring.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    There is also a mechanism to determine whether a frame swap was
 | 
					 | 
				
			||||||
    missed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Procedures and Functions
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    int glXGetFrameUsageMESA(Display *dpy,
 | 
					 | 
				
			||||||
                             GLXDrawable drawable,
 | 
					 | 
				
			||||||
    	                     float *usage)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    int glXBeginFrameTrackingMESA(Display *dpy,
 | 
					 | 
				
			||||||
                                  GLXDrawable drawable)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    int glXEndFrameTrackingMESA(Display *dpy,
 | 
					 | 
				
			||||||
                                GLXDrawable drawable)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    int glXQueryFrameTrackingMESA(Display *dpy,
 | 
					 | 
				
			||||||
                                  GLXDrawable drawable,
 | 
					 | 
				
			||||||
				  int64_t *swapCount,
 | 
					 | 
				
			||||||
                                  int64_t *missedFrames,
 | 
					 | 
				
			||||||
                                  float *lastMissedUsage)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Tokens
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 2 of the 1.4 GL Specification (OpenGL Operation)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 3 of the 1.4 GL Specification (Rasterization)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 4 of the 1.4 GL Specification (Per-Fragment Operations
 | 
					 | 
				
			||||||
and the Framebuffer)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 5 of the 1.4 GL Specification (Special Functions)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 6 of the 1.4 GL Specification (State and State Requests)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to the GLX 1.3 Specification
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The frame usage is measured as the percentage of the swap period elapsed
 | 
					 | 
				
			||||||
    between two buffer-swap operations being commited.  In unextened GLX the
 | 
					 | 
				
			||||||
    swap period is the vertical refresh time.  If SGI_swap_control or
 | 
					 | 
				
			||||||
    MESA_swap_control are supported, the swap period is the vertical refresh
 | 
					 | 
				
			||||||
    time multiplied by the swap interval (or one if the swap interval is set
 | 
					 | 
				
			||||||
    to zero).
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    If OML_sync_control is supported, the swap period is the vertical
 | 
					 | 
				
			||||||
    refresh time multiplied by the divisor parameter to
 | 
					 | 
				
			||||||
    glXSwapBuffersMscOML.  The frame usage in this case is less than 1.0 if
 | 
					 | 
				
			||||||
    the swap is commited before target_msc, and is greater than or equal to
 | 
					 | 
				
			||||||
    1.0 otherwise.  The actual usage value is based on the divisor and is
 | 
					 | 
				
			||||||
    never less than 0.0.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       int glXBeginFrameTrackingMESA(Display *dpy,
 | 
					 | 
				
			||||||
                                     GLXDrawable drawable,
 | 
					 | 
				
			||||||
				     float *usage)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    glXGetFrameUsageMESA returns a floating-point value in <usage>
 | 
					 | 
				
			||||||
    that represents the current swap usage, as defined above.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Missed frame swaps can be tracked by calling the following function:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       int glXBeginFrameTrackingMESA(Display *dpy,
 | 
					 | 
				
			||||||
                                     GLXDrawable drawable)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    glXBeginFrameTrackingMESA resets a "missed frame" count and
 | 
					 | 
				
			||||||
    synchronizes with the next frame vertical sync before it returns.
 | 
					 | 
				
			||||||
    If a swap is missed based in the rate control specified by the
 | 
					 | 
				
			||||||
    <interval> set by glXSwapIntervalSGI or the default swap of once
 | 
					 | 
				
			||||||
    per frame, the missed frame count is incremented.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The current missed frame count and total number of swaps since
 | 
					 | 
				
			||||||
    the last call to glXBeginFrameTrackingMESA can be obtained by
 | 
					 | 
				
			||||||
    callling the following function:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       int glXQueryFrameTrackingMESA(Display *dpy,
 | 
					 | 
				
			||||||
                                     GLXDrawable drawable,
 | 
					 | 
				
			||||||
				     int64_t *swapCount,
 | 
					 | 
				
			||||||
                                     int64_t *missedFrames,
 | 
					 | 
				
			||||||
                                     float *lastMissedUsage)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The location pointed to by <swapCount> will be updated with the
 | 
					 | 
				
			||||||
    number of swaps that have been commited.  This value may not match the
 | 
					 | 
				
			||||||
    number of swaps that have been requested since swaps may be
 | 
					 | 
				
			||||||
    queued by the implementation.  This function can be called at any
 | 
					 | 
				
			||||||
    time and does not synchronize to vertical blank.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The location pointed to by <missedFrames> will contain the number
 | 
					 | 
				
			||||||
    swaps that missed the specified frame.  The frame usage for the
 | 
					 | 
				
			||||||
    last missed frame is returned in the location pointed to by
 | 
					 | 
				
			||||||
    <lastMissedUsage>.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Frame tracking is disabled by calling the function
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       int glXEndFrameTrackingMESA(Display *dpy,
 | 
					 | 
				
			||||||
                                   GLXDrawable drawable)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    This function will not return until all swaps have occurred.  The
 | 
					 | 
				
			||||||
    application can call glXQueryFrameTrackingMESA for a final swap and
 | 
					 | 
				
			||||||
    missed frame count.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    If these functions are succesful, zero is returned.  If the context
 | 
					 | 
				
			||||||
    associated with dpy and drawable is not a direct context,
 | 
					 | 
				
			||||||
    GLX_BAD_CONTEXT is returned.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Errors
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    If the function succeeds, zero is returned.  If the function
 | 
					 | 
				
			||||||
    fails, one of the following error codes is returned:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       GLX_BAD_CONTEXT         The current rendering context is not a direct
 | 
					 | 
				
			||||||
       			       context.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLX Protocol
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.  This extension only extends to direct rendering contexts.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New State
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Implementation Dependent State
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Revision History
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    1.1,  5/1/03   Added contact information.
 | 
					 | 
				
			||||||
    1.0,  3/17/03  Initial version based on WGL_I3D_swap_frame_usage.
 | 
					 | 
				
			||||||
@@ -1,360 +0,0 @@
 | 
				
			|||||||
Name
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
     MESA_trace
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Name Strings
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
     GL_MESA_TRACE
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Contact
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    Bernd Kreimeier, Loki Entertainment, bk 'at' lokigames.com
 | 
					 | 
				
			||||||
    Brian Paul, VA Linux Systems, Inc., brianp 'at' valinux.com
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Obsolete.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Version
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    $Id: MESA_trace.spec,v 1.3 2003/09/19 14:58:21 brianp Exp $
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Number
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    none yet
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dependencies
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    OpenGL 1.2 is required.
 | 
					 | 
				
			||||||
    The extension is written against the OpenGL 1.2 Specification
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Overview
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Provides the application with means to enable and disable logging
 | 
					 | 
				
			||||||
    of GL calls including parameters as readable text. The verbosity
 | 
					 | 
				
			||||||
    of the generated log can be controlled. The resulting logs are
 | 
					 | 
				
			||||||
    valid (but possibly incomplete) C code and can be compiled and 
 | 
					 | 
				
			||||||
    linked for standalone test programs. The set of calls and the 
 | 
					 | 
				
			||||||
    amount of static data that is logged can be controlled at runtime. 
 | 
					 | 
				
			||||||
    The application can add comments and enable or disable tracing of GL 
 | 
					 | 
				
			||||||
    operations at any time. The data flow from the application to GL
 | 
					 | 
				
			||||||
    and back is unaffected except for timing.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Application-side implementation of these features raises namespace
 | 
					 | 
				
			||||||
    and linkage issues. In the driver dispatch table a simple
 | 
					 | 
				
			||||||
    "chain of responsibility" pattern (aka "composable piepline")
 | 
					 | 
				
			||||||
    can be added.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
IP Status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The extension spec is in the public domain.  The current implementation
 | 
					 | 
				
			||||||
    in Mesa is covered by Mesa's XFree86-style copyright by the authors above.
 | 
					 | 
				
			||||||
    This extension is partially inspired by the Quake2 QGL wrapper.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Issues
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
    (1) Is this Extension obsolete because it can
 | 
					 | 
				
			||||||
    be implemented as a wrapper DLL?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      RESOLVED: No. While certain operating systems (Win32) provide linkers 
 | 
					 | 
				
			||||||
      that facilitate this kind of solution, other operating systems
 | 
					 | 
				
			||||||
      (Linux) do not support hierarchical linking, so a wrapper solution
 | 
					 | 
				
			||||||
      would result in symbol collisions.
 | 
					 | 
				
			||||||
      Further, IHV's might have builtin support for tracing GL execution 
 | 
					 | 
				
			||||||
      that enjoys privileged access, or that they do not wish to separate
 | 
					 | 
				
			||||||
      the tracing code from their driver code base.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    (2) Should the Trace API explicitely support the notion of "frames? 
 | 
					 | 
				
			||||||
    This would require hooking into glXSwapBuffers calls as well.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      RESOLVED: No. The application can use NewTraceMESA/EndTraceMESA
 | 
					 | 
				
			||||||
      and TraceComment along with external parsing tools to split the 
 | 
					 | 
				
			||||||
      trace into frames, in whatever way considered adequate.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    (2a) Should GLX calls be traced?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      PBuffers and other render-to-texture solutions demonstrate that
 | 
					 | 
				
			||||||
      context level commands beyond SwapBuffers might have to be
 | 
					 | 
				
			||||||
      traced. The GL DLL exports the entry points, so this would not
 | 
					 | 
				
			||||||
      be out of the question. 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    (3) Should the specification mandate the actual output format?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      RESOLVED: No. It is sufficient to guarantee that all data and commands 
 | 
					 | 
				
			||||||
      will be traced as requested by Enable/DisableTraceMESA, in the order
 | 
					 | 
				
			||||||
      encountered. Whether the resulting trace is available as a readable 
 | 
					 | 
				
			||||||
      text file, binary metafile, compilable source code, much less which 
 | 
					 | 
				
			||||||
      indentation and formatting has been used, is up to the implementation. 
 | 
					 | 
				
			||||||
      For the same reason this specification does not enforce or prohibit
 | 
					 | 
				
			||||||
      additional information added to the trace (statistics, profiling/timing, 
 | 
					 | 
				
			||||||
      warnings on possible error conditions).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    (4) Should the comment strings associated with names and pointer (ranges) 
 | 
					 | 
				
			||||||
    be considered persistent state?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      RESOLVED: No. The implementation is not forced to use this information 
 | 
					 | 
				
			||||||
      on subsequent occurences of name/pointer, and is free to consider it 
 | 
					 | 
				
			||||||
      transient state.
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
    (5) Should comment commands be prohibited between Begin/End?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      RESOLVED: Yes, with the exception of TraceCommentMESA. TraceCommentMESA 
 | 
					 | 
				
			||||||
      is transient, the other commands might cause storage of persistent
 | 
					 | 
				
			||||||
      data in the context. There is no need to have the ability mark names 
 | 
					 | 
				
			||||||
      or pointers between Begin and End.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Procedures and Functions
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
    void NewTraceMESA( bitfield mask, const ubyte * traceName )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    void EndTraceMESA( void )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    void EnableTraceMESA( bitfield mask )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    void DisableTraceMESA( bitfield mask )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    void TraceAssertAttribMESA( bitfield attribMask )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    void TraceCommentMESA( const ubyte* comment )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    void TraceTextureMESA( uint name, const ubyte* comment )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    void TraceListMESA( uint name, const ubyte* comment )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    void TracePointerMESA( void* pointer, const ubyte* comment )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    void TracePointerRangeMESA( const void* first, 
 | 
					 | 
				
			||||||
                                const void* last, 
 | 
					 | 
				
			||||||
                                const ubyte* comment ) 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Tokens
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
    Accepted by the <mask> parameter of EnableTrace and DisableTrace:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       TRACE_ALL_BITS_MESA           0xFFFF
 | 
					 | 
				
			||||||
       TRACE_OPERATIONS_BIT_MESA     0x0001
 | 
					 | 
				
			||||||
       TRACE_PRIMITIVES_BIT_MESA     0x0002
 | 
					 | 
				
			||||||
       TRACE_ARRAYS_BIT_MESA         0x0004
 | 
					 | 
				
			||||||
       TRACE_TEXTURES_BIT_MESA       0x0008
 | 
					 | 
				
			||||||
       TRACE_PIXELS_BIT_MESA         0x0010
 | 
					 | 
				
			||||||
       TRACE_ERRORS_BIT_MESA         0x0020
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Accepted by the <pname> parameter of GetIntegerv, GetBooleanv,
 | 
					 | 
				
			||||||
    GetFloatv, and GetDoublev:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       TRACE_MASK_MESA               0x8755
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Accepted by the <pname> parameter to GetString:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       TRACE_NAME_MESA               0x8756
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 2 of the OpenGL 1.2.1 Specification (OpenGL Operation)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 3 of the OpenGL 1.2.1 Specification (OpenGL Operation)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 4 of the OpenGL 1.2.1 Specification (OpenGL Operation)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 5 of the OpenGL 1.2.1 Specification (Special Functions)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Add a new section:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    5.7 Tracing
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The tracing facility is used to record the execution of a GL program
 | 
					 | 
				
			||||||
    to a human-readable log.  The log appears as a sequence of GL commands
 | 
					 | 
				
			||||||
    using C syntax.  The primary intention of tracing is to aid in program
 | 
					 | 
				
			||||||
    debugging.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    A trace is started with the command
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      void NewTraceMESA( bitfield mask, const GLubyte * traceName )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <mask> may be any value accepted by PushAttrib and specifies a set of
 | 
					 | 
				
			||||||
    attribute groups.  The state values included in those attribute groups
 | 
					 | 
				
			||||||
    is written to the trace as a sequence of GL commands.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <traceName> specifies a name or label for the trace.  It is expected
 | 
					 | 
				
			||||||
    that <traceName> will be interpreted as a filename in most implementations.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    A trace is ended by calling the command
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      void EndTraceMESA( void )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    It is illegal to call NewTraceMESA or EndTraceMESA between Begin and End. 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The commands
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      void EnableTraceMESA( bitfield mask )
 | 
					 | 
				
			||||||
      void DisableTraceMESA( bitfield mask )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    enable or disable tracing of different classes of GL commands.
 | 
					 | 
				
			||||||
    <mask> may be the union of any of TRACE_OPERATIONS_BIT_MESA,
 | 
					 | 
				
			||||||
    TRACE_PRIMITIVES_BIT_MESA, TRACE_ARRAYS_BIT_MESA, TRACE_TEXTURES_BIT_MESA,
 | 
					 | 
				
			||||||
    and TRACE_PIXELS_BIT_MESA.  The special token TRACE_ALL_BITS_MESA
 | 
					 | 
				
			||||||
    indicates all classes of commands are to be logged.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    TRACE_OPERATIONS_BIT_MESA controls logging of all commands outside of
 | 
					 | 
				
			||||||
    Begin/End, including Begin/End.
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
    TRACE_PRIMITIVES_BIT_MESA controls logging of all commands inside of
 | 
					 | 
				
			||||||
    Begin/End, including Begin/End.
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
    TRACE_ARRAYS_BIT_MESA controls logging of VertexPointer, NormalPointer,
 | 
					 | 
				
			||||||
    ColorPointer, IndexPointer, TexCoordPointer and EdgeFlagPointer commands.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    TRACE_TEXTURES_BIT_MESA controls logging of texture data dereferenced by
 | 
					 | 
				
			||||||
    TexImage1D, TexImage2D, TexImage3D, TexSubImage1D, TexSubImage2D, and
 | 
					 | 
				
			||||||
    TexSubImage3D commands.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    TRACE_PIXELS_BIT_MESA controls logging of image data dereferenced by
 | 
					 | 
				
			||||||
    Bitmap and DrawPixels commands.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    TRACE_ERRORS_BIT_MESA controls logging of all errors. If this bit is 
 | 
					 | 
				
			||||||
    set, GetError will be executed whereever applicable, and the result will 
 | 
					 | 
				
			||||||
    be added to the trace as a comment. The error returns are cached and 
 | 
					 | 
				
			||||||
    returned to the application on its GetError calls. If the user does not 
 | 
					 | 
				
			||||||
    wish the additional GetError calls to be performed, this bit should not
 | 
					 | 
				
			||||||
    be set.
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    The command
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      void TraceCommentMESA( const ubyte* comment )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    immediately adds the <comment> string to the trace output, surrounded
 | 
					 | 
				
			||||||
    by C-style comment delimiters.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The commands
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      void TraceTextureMESA( uint name, const ubyte* comment )
 | 
					 | 
				
			||||||
      void TraceListMESA( uint name, const ubyte* comment )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    associates <comment> with the texture object or display list specified
 | 
					 | 
				
			||||||
    by <name>.  Logged commands which reference the named texture object or
 | 
					 | 
				
			||||||
    display list will be annotated with <comment>.  If IsTexture(name) or
 | 
					 | 
				
			||||||
    IsList(name) fail (respectively) the command is quietly ignored.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The commands
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      void TracePointerMESA( void* pointer, const ubyte* comment )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      void TracePointerRangeMESA( const void* first, 
 | 
					 | 
				
			||||||
                                  const void* last,
 | 
					 | 
				
			||||||
                                  const ubyte* comment ) 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    associate <comment> with the address specified by <pointer> or with
 | 
					 | 
				
			||||||
    a range of addresses specified by <first> through <last>.
 | 
					 | 
				
			||||||
    Any logged commands which reference <pointer> or an address between
 | 
					 | 
				
			||||||
    <first> and <last> will be annotated with <comment>.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The command
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      void TraceAssertAttribMESA( bitfield attribMask )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    will add GL state queries and assertion statements to the log to
 | 
					 | 
				
			||||||
    confirm that the current state at the time TraceAssertAttrib is
 | 
					 | 
				
			||||||
    executed matches the current state when the trace log is executed
 | 
					 | 
				
			||||||
    in the future.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <attribMask> is any value accepted by PushAttrib and specifies
 | 
					 | 
				
			||||||
    the groups of state variables which are to be asserted.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The commands NewTraceMESA, EndTraceMESA, EnableTraceMESA, DisableTraceMESA,
 | 
					 | 
				
			||||||
    TraceAssertAttribMESA, TraceCommentMESA, TraceTextureMESA, TraceListMESA, 
 | 
					 | 
				
			||||||
    TracePointerMESA and TracePointerRangeMESA are not compiled into display lists.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Examples:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The command NewTraceMESA(DEPTH_BUFFER_BIT, "log") will query the state
 | 
					 | 
				
			||||||
    variables DEPTH_TEST, DEPTH_FUNC, DEPTH_WRITEMASK, and DEPTH_CLEAR_VALUE
 | 
					 | 
				
			||||||
    to get the values <test>, <func>, <mask>, and <clear> respectively.
 | 
					 | 
				
			||||||
    Statements equivalent to the following will then be logged:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       glEnable(GL_DEPTH_TEST);   (if <test> is true)
 | 
					 | 
				
			||||||
       glDisable(GL_DEPTH_TEST);  (if <test> is false)
 | 
					 | 
				
			||||||
       glDepthFunc(<func>); 
 | 
					 | 
				
			||||||
       glDepthMask(<mask>);
 | 
					 | 
				
			||||||
       glClearDepth(<clear>);
 | 
					 | 
				
			||||||
   
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The command TraceAssertAttribMESA(DEPTH_BUFFER_BIT) will query the state
 | 
					 | 
				
			||||||
    variables DEPTH_TEST, DEPTH_FUNC, DEPTH_WRITEMASK, and DEPTH_CLEAR_VALUE
 | 
					 | 
				
			||||||
    to get the values <test>, <func>, <mask>, and <clear> respectively.
 | 
					 | 
				
			||||||
    The resulting trace might then look will like this:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      GLboolean b;
 | 
					 | 
				
			||||||
      GLint i;
 | 
					 | 
				
			||||||
      GLfloat f;
 | 
					 | 
				
			||||||
      b = glIsEnabled(GL_DEPTH_TEST);
 | 
					 | 
				
			||||||
      assert(b == <test>);
 | 
					 | 
				
			||||||
      glGetIntegerv(GL_DEPTH_FUNC, &i);
 | 
					 | 
				
			||||||
      assert(i == <func>);
 | 
					 | 
				
			||||||
      glGetIntegerv(GL_DEPTH_MASK, &i);
 | 
					 | 
				
			||||||
      assert(i == <mask>);
 | 
					 | 
				
			||||||
      glGetFloatv(GL_DEPTH_CLEAR_VALUE, &f);
 | 
					 | 
				
			||||||
      assert(f == <clear>);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 6 of the OpenGL 1.2.1 Specification 
 | 
					 | 
				
			||||||
    (State and State Requests)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Querying TRACE_MASK_MESA with GetIntegerv, GetFloatv, GetBooleanv or
 | 
					 | 
				
			||||||
    GetDoublev returns the current command class trace mask.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Querying TRACE_NAME_MESA with GetString returns the current trace name.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Appendix A of the OpenGL 1.2.1 Specification (Invariance)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The MESA_trace extension can be used in a way that does not affect data 
 | 
					 | 
				
			||||||
    flow from application to OpenGL, as well as data flow from OpenGL to 
 | 
					 | 
				
			||||||
    application, except for timing, possible print I/O. TRACE_ERRORS_BIT_MESA
 | 
					 | 
				
			||||||
    will add additional GetError queries. Setting a trace mask with NewTraceMESA
 | 
					 | 
				
			||||||
    as well as use of TraceAssertAttribMESA might cause additional state queries.
 | 
					 | 
				
			||||||
    With the possible exception of performance, OpenGL rendering should not be
 | 
					 | 
				
			||||||
    affected at all by a properly chosen logging operation.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to the AGL/GLX/WGL Specifications
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLX Protocol
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None. The logging operation is carried out client-side, by exporting
 | 
					 | 
				
			||||||
    entry points to the wrapper functions that execute the logging operation.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Errors
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    INVALID_OPERATION is generated if any trace command except TraceCommentMESA
 | 
					 | 
				
			||||||
    is called between Begin and End.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New State
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The current trace name and current command class mask are stored
 | 
					 | 
				
			||||||
    per-context.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Implementation Dependent State
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Revision History
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  * Revision 0.1 - Initial draft from template (bk000415)
 | 
					 | 
				
			||||||
  * Revision 0.2 - Draft (bk000906)
 | 
					 | 
				
			||||||
  * Revision 0.3 - Draft (bk000913)
 | 
					 | 
				
			||||||
  * Revision 0.4 - Reworked text, fixed typos (bp000914)
 | 
					 | 
				
			||||||
  * Revision 0.5 - Assigned final GLenum values (bp001103)
 | 
					 | 
				
			||||||
  * Revision 0.6 - TRACE_ERRORS_BIT_MESA (bk000916)
 | 
					 | 
				
			||||||
  * Revision 0.7 - Added MESA postfix (bk010126)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -16,11 +16,11 @@ Status
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Version
 | 
					Version
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $Id: MESA_window_pos.spec,v 1.3 2000/04/04 23:29:32 brianp Exp $
 | 
					    $Id: MESA_window_pos.spec,v 1.1 1999/07/20 00:30:41 brianp Exp $
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Number
 | 
					Number
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    197
 | 
					    XXX non assigned
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Dependencies
 | 
					Dependencies
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -33,7 +33,7 @@ Overview
 | 
				
			|||||||
    coordinate with the RasterPos command, the modelview matrix, projection
 | 
					    coordinate with the RasterPos command, the modelview matrix, projection
 | 
				
			||||||
    matrix and viewport must be set very carefully.  Furthermore, if the
 | 
					    matrix and viewport must be set very carefully.  Furthermore, if the
 | 
				
			||||||
    desired window coordinate is outside of the window's bounds one must
 | 
					    desired window coordinate is outside of the window's bounds one must
 | 
				
			||||||
    rely on a subtle side-effect of the Bitmap command in order to circumvent
 | 
					    rely a subtle side-effect of the Bitmap command in order to circumvent
 | 
				
			||||||
    frustum clipping.
 | 
					    frustum clipping.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    This extension provides a set of functions to directly set the
 | 
					    This extension provides a set of functions to directly set the
 | 
				
			||||||
@@ -51,26 +51,6 @@ New Procedures and Functions
 | 
				
			|||||||
    void WindowPos2fMESA(float x, float y)
 | 
					    void WindowPos2fMESA(float x, float y)
 | 
				
			||||||
    void WindowPos2iMESA(int x, int y)
 | 
					    void WindowPos2iMESA(int x, int y)
 | 
				
			||||||
    void WindowPos2sMESA(short x, short y)
 | 
					    void WindowPos2sMESA(short x, short y)
 | 
				
			||||||
    void WindowPos2ivMESA(const int *p)
 | 
					 | 
				
			||||||
    void WindowPos2svMESA(const short *p)
 | 
					 | 
				
			||||||
    void WindowPos2fvMESA(const float *p)
 | 
					 | 
				
			||||||
    void WindowPos2dvMESA(const double *p)
 | 
					 | 
				
			||||||
    void WindowPos3iMESA(int x, int y, int z)
 | 
					 | 
				
			||||||
    void WindowPos3sMESA(short x, short y, short z)
 | 
					 | 
				
			||||||
    void WindowPos3fMESA(float x, float y, float z)
 | 
					 | 
				
			||||||
    void WindowPos3dMESA(double x, double y, double z)
 | 
					 | 
				
			||||||
    void WindowPos3ivMESA(const int *p)
 | 
					 | 
				
			||||||
    void WindowPos3svMESA(const short *p)
 | 
					 | 
				
			||||||
    void WindowPos3fvMESA(const float *p)
 | 
					 | 
				
			||||||
    void WindowPos3dvMESA(const double *p)
 | 
					 | 
				
			||||||
    void WindowPos4iMESA(int x, int y, int z, int w)
 | 
					 | 
				
			||||||
    void WindowPos4sMESA(short x, short y, short z, short w)
 | 
					 | 
				
			||||||
    void WindowPos4fMESA(float x, float y, float z, float w)
 | 
					 | 
				
			||||||
    void WindowPos4dMESA(double x, double y, double z, double )
 | 
					 | 
				
			||||||
    void WindowPos4ivMESA(const int *p)
 | 
					 | 
				
			||||||
    void WindowPos4svMESA(const short *p)
 | 
					 | 
				
			||||||
    void WindowPos4fvMESA(const float *p)
 | 
					 | 
				
			||||||
    void WindowPos4dvMESA(const double *p)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
New Tokens
 | 
					New Tokens
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -98,6 +78,14 @@ Additions to Chapter 2 of the OpenGL 1.2 Specification (OpenGL Operation)
 | 
				
			|||||||
      color, color index and texture coordinate update the current raster
 | 
					      color, color index and texture coordinate update the current raster
 | 
				
			||||||
      position's associated data.
 | 
					      position's associated data.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      The current raster distance ??? XXX ???
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Additions to the AGL/GLX/WGL Specifications
 | 
					Additions to the AGL/GLX/WGL Specifications
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    None
 | 
					    None
 | 
				
			||||||
@@ -112,6 +100,7 @@ Errors
 | 
				
			|||||||
    INVALID_OPERATION is generated if WindowPosMESA is called betweeen
 | 
					    INVALID_OPERATION is generated if WindowPosMESA is called betweeen
 | 
				
			||||||
    Begin and End.
 | 
					    Begin and End.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
New State
 | 
					New State
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    None.
 | 
					    None.
 | 
				
			||||||
@@ -123,5 +112,3 @@ New Implementation Dependent State
 | 
				
			|||||||
Revision History
 | 
					Revision History
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  * Revision 1.0 - Initial specification
 | 
					  * Revision 1.0 - Initial specification
 | 
				
			||||||
  * Revision 1.1 - Minor clean-up  (7 Jan 2000, Brian Paul)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,203 +0,0 @@
 | 
				
			|||||||
Name
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    MESA_ycbcr_texture
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Name Strings
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    GL_MESA_ycbcr_texture
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Contact
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Brian Paul, Tungsten Graphics, Inc. (brian 'at' tungstengraphics.com)
 | 
					 | 
				
			||||||
    Keith Whitwell, Tungsten Graphics, Inc.  (keith 'at' tungstengraphics.com)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Shipping (Mesa 4.0.4 and later)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Version
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    1.0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Number
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    TBD
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dependencies
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    OpenGL 1.0 or later is required
 | 
					 | 
				
			||||||
    This extensions is written against the OpenGL 1.4 Specification.
 | 
					 | 
				
			||||||
    NV_texture_rectangle effects the definition of this extension.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Overview
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    This extension supports texture images stored in the YCbCr format.
 | 
					 | 
				
			||||||
    There is no support for converting YCbCr images to RGB or vice versa
 | 
					 | 
				
			||||||
    during pixel transfer.  The texture's YCbCr colors are converted to
 | 
					 | 
				
			||||||
    RGB during texture sampling, after-which, all the usual per-fragment
 | 
					 | 
				
			||||||
    operations take place.  Only 2D texture images are supported (not
 | 
					 | 
				
			||||||
    glDrawPixels, glReadPixels, etc).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    A YCbCr pixel (texel) is a 16-bit unsigned short with two components.
 | 
					 | 
				
			||||||
    The first component is luminance (Y).  For pixels in even-numbered
 | 
					 | 
				
			||||||
    image columns, the second component is Cb.  For pixels in odd-numbered
 | 
					 | 
				
			||||||
    image columns, the second component is Cr.  If one were to convert the
 | 
					 | 
				
			||||||
    data to RGB one would need to examine two pixels from columns N and N+1
 | 
					 | 
				
			||||||
    (where N is even) to deduce the RGB color.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
IP Status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Issues
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Procedures and Functions
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Tokens
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Accepted by the <internalFormat> and <format> parameters of
 | 
					 | 
				
			||||||
    TexImage2D and TexSubImage2D:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        YCBCR_MESA                   0x8757
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Accepted by the <type> parameter of TexImage2D and TexSubImage2D:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        UNSIGNED_SHORT_8_8_MESA      0x85BA /* same as Apple's */
 | 
					 | 
				
			||||||
        UNSIGNED_SHORT_8_8_REV_MESA  0x85BB /* same as Apple's */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 2 of the OpenGL 1.4 Specification (OpenGL Operation)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 3 of the OpenGL 1.4 Specification (Rasterization)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    In section 3.6.4, Rasterization of Pixel Rectangles, on page 102,
 | 
					 | 
				
			||||||
    add the following to Table 3.8 (Packed pixel formats):
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    type Parameter                GL Data   Number of        Matching
 | 
					 | 
				
			||||||
     Token Name                    Type     Components     Pixel Formats
 | 
					 | 
				
			||||||
    --------------                -------   ----------     -------------
 | 
					 | 
				
			||||||
    UNSIGNED_SHORT_8_8_MESA       ushort         3         YCBCR_422_MESA
 | 
					 | 
				
			||||||
    UNSIGNED_SHORT_8_8_REV_MESA   ushort         3         YCBCR_422_MESA
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    In section 3.6.4, Rasterization of Pixel Rectangles, on page 102,
 | 
					 | 
				
			||||||
    add the following to Table 3.10 (UNSIGNED_SHORT formats):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    UNSIGNED_SHORT_8_8_MESA:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      15  14  13  12  11  10  9   8   7   6   5   4   3   2   1   0
 | 
					 | 
				
			||||||
    +-------------------------------+-------------------------------+
 | 
					 | 
				
			||||||
    |              1st              |              2nd              |
 | 
					 | 
				
			||||||
    +-------------------------------+-------------------------------+
 | 
					 | 
				
			||||||
                        
 | 
					 | 
				
			||||||
    UNSIGNED_SHORT_8_8_REV_MESA:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      15  14  13  12  11  10  9   8   7   6   5   4   3   2   1   0
 | 
					 | 
				
			||||||
    +-------------------------------+-------------------------------+
 | 
					 | 
				
			||||||
    |              2nd              |              1st              |
 | 
					 | 
				
			||||||
    +-------------------------------+-------------------------------+
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    In section 3.6.4, Rasterization of Pixel Rectangles, on page 102,
 | 
					 | 
				
			||||||
    add the following to Table 3.12 (Packed pixel fiedl assignments):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                       First       Second     Third      Fourth
 | 
					 | 
				
			||||||
    Format             Element     Element    Element    Element
 | 
					 | 
				
			||||||
    ------             -------     -------    -------    -------
 | 
					 | 
				
			||||||
    YCBCR_422_MESA     luminance   chroma
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    In section 3.8.1, Texture Image Specification, on page 125, add
 | 
					 | 
				
			||||||
    another item to the list of TexImage2D and TexImage3D equivalence
 | 
					 | 
				
			||||||
    exceptions:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    * The value of internalformat and format may be YCBCR_MESA to
 | 
					 | 
				
			||||||
      indicate that the image data is in YCbCr format.  type must
 | 
					 | 
				
			||||||
      be either UNSIGNED_SHORT_8_8_MESA or UNSIGNED_SHORT_8_8_REV_MESA
 | 
					 | 
				
			||||||
      as seen in tables 3.8 and 3.10.  Table 3.12 describes the mapping
 | 
					 | 
				
			||||||
      between Y and Cb/Cr to the components.
 | 
					 | 
				
			||||||
      If NV_texture_rectangle is supported target may also be
 | 
					 | 
				
			||||||
      TEXTURE_RECTANGLE_NV or PROXY_TEXTURE_RECTANGLE_NV.
 | 
					 | 
				
			||||||
      All pixel transfer operations are bypassed.  The texture is stored as
 | 
					 | 
				
			||||||
      YCbCr, not RGB.  Queries of the texture's red, green and blue component
 | 
					 | 
				
			||||||
      sizes will return zero.  The YCbCr colors are converted to RGB during
 | 
					 | 
				
			||||||
      texture sampling using an implementation dependent conversion.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    In section 3.8.1, Texture Image Specification, on page 126, add
 | 
					 | 
				
			||||||
    another item to the list of TexImage1D and TexImage2D equivalence
 | 
					 | 
				
			||||||
    exceptions:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    * The value of internalformat and format can not be YCBCR_MESA.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    In section 3.8.2, Alternate Texture Image Specification Commands, on
 | 
					 | 
				
			||||||
    page 129, insert this paragraph after the first full paragraph on the
 | 
					 | 
				
			||||||
    page:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         "If the internal storage format of the image being updated by
 | 
					 | 
				
			||||||
    TexSubImage2D is YCBCR_MESA then format must be YCBCR_MESA.
 | 
					 | 
				
			||||||
    The error INVALID_OPERATION will be generated otherwise."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 4 of the OpenGL 1.4 Specification (Per-Fragment
 | 
					 | 
				
			||||||
Operations and the Frame Buffer)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 5 of the OpenGL 1.4 Specification (Special Functions)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 6 of the OpenGL 1.4 Specification (State and
 | 
					 | 
				
			||||||
State Requests)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Appendix A of the OpenGL 1.4 Specification (Invariance)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to the AGL/GLX/WGL Specifications
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLX Protocol
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Errors
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    INVALID_ENUM is generated by TexImage2D if <internalFormat> is
 | 
					 | 
				
			||||||
    MESA_YCBCR but <format> is not MESA_YCBCR.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    INVALID_ENUM is generated by TexImage2D if <format> is MESA_YCBCR but
 | 
					 | 
				
			||||||
    <internalFormat> is not MESA_YCBCR.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    INVALID_VALUE is generated by TexImage2D if <format> is MESA_YCBCR and
 | 
					 | 
				
			||||||
    <internalFormat> is MESA_YCBCR and <border> is not zero.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    INVALID_OPERATION is generated by TexSubImage2D if the internal image
 | 
					 | 
				
			||||||
    format is YCBCR_MESA and <format> is not YCBCR_MESA.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    INVALID_OPERATION is generated by CopyTexSubImage2D if the internal
 | 
					 | 
				
			||||||
    image is YCBCR_MESA.
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
New State
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Edit table 6.16 on page 231: change the type of TEXTURE_INTERNAL_FORMAT
 | 
					 | 
				
			||||||
    from n x Z42 to n x Z43 to indicate that internal format may also be
 | 
					 | 
				
			||||||
    YCBCR_MESA.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Revision History
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    20 September 2002 - Initial draft
 | 
					 | 
				
			||||||
    29 April 2003 - minor updates
 | 
					 | 
				
			||||||
     3 September 2003 - further clarify when YCbCr->RGB conversion takes place
 | 
					 | 
				
			||||||
    19 September 2003 - a few more updates prior to submitting to extension
 | 
					 | 
				
			||||||
                        registry.
 | 
					 | 
				
			||||||
@@ -1,547 +0,0 @@
 | 
				
			|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 | 
					 | 
				
			||||||
<html>
 | 
					 | 
				
			||||||
<head>
 | 
					 | 
				
			||||||
  <title>Mini GLX Specification</title>
 | 
					 | 
				
			||||||
</head>
 | 
					 | 
				
			||||||
<body>
 | 
					 | 
				
			||||||
<h1>
 | 
					 | 
				
			||||||
<center>Mini GLX Specification</center>
 | 
					 | 
				
			||||||
</h1>
 | 
					 | 
				
			||||||
<h2>
 | 
					 | 
				
			||||||
<center>Tungsten Graphics, Inc.<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
January 20, 2003<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
</center>
 | 
					 | 
				
			||||||
</h2>
 | 
					 | 
				
			||||||
<p> Copyright © 2002-2003 by Tungsten Graphics, Inc., Cedar Park,
 | 
					 | 
				
			||||||
Texas. All Rights Reserved. <br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
Permission is granted to make and distribute verbatim copies of this
 | 
					 | 
				
			||||||
document provided the copyright notice and this permission notice are
 | 
					 | 
				
			||||||
preserved on all copies.<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<h1>1. Introduction</h1>
 | 
					 | 
				
			||||||
<p>The Mini GLX interface facilitates OpenGL rendering on embedded
 | 
					 | 
				
			||||||
devices. The interface is a subset of the GLX interface, plus a minimal
 | 
					 | 
				
			||||||
set of Xlib-like functions.</p>
 | 
					 | 
				
			||||||
<p>Programs written to the Mini GLX specification should run unchanged
 | 
					 | 
				
			||||||
on systems with the X Window System and the GLX extension. The intention
 | 
					 | 
				
			||||||
is to allow flexibility for prototyping and testing.</p>
 | 
					 | 
				
			||||||
<p>This document serves as both the reference guide and programming
 | 
					 | 
				
			||||||
guide for Mini GLX.<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<h1>2. Mini GLX Concepts</h1>
 | 
					 | 
				
			||||||
<p>The OpenGL specification does not describe how OpenGL rendering
 | 
					 | 
				
			||||||
contexts and drawing surfaces (i.e. the frame buffer) are created and
 | 
					 | 
				
			||||||
managed. Rather, this is handled by an OpenGL window system interface,
 | 
					 | 
				
			||||||
such as Mini GLX.</p>
 | 
					 | 
				
			||||||
<p>There are three main datatypes or resources managed by Mini GLX. The
 | 
					 | 
				
			||||||
resources and their corresponding GLX or Xlib data types are:</p>
 | 
					 | 
				
			||||||
<table cellspacing="10" align="center">
 | 
					 | 
				
			||||||
  <tbody>
 | 
					 | 
				
			||||||
    <tr>
 | 
					 | 
				
			||||||
      <td><u>Resource</u></td>
 | 
					 | 
				
			||||||
      <td><u>Data type</u></td>
 | 
					 | 
				
			||||||
    </tr>
 | 
					 | 
				
			||||||
    <tr>
 | 
					 | 
				
			||||||
      <td>pixel formats</td>
 | 
					 | 
				
			||||||
      <td>X Visual and XVisualInfo</td>
 | 
					 | 
				
			||||||
    </tr>
 | 
					 | 
				
			||||||
    <tr>
 | 
					 | 
				
			||||||
      <td>drawing surfaces</td>
 | 
					 | 
				
			||||||
      <td>X Window or GLXDrawable</td>
 | 
					 | 
				
			||||||
    </tr>
 | 
					 | 
				
			||||||
    <tr>
 | 
					 | 
				
			||||||
      <td>rendering contexts</td>
 | 
					 | 
				
			||||||
      <td>GLXContext</td>
 | 
					 | 
				
			||||||
    </tr>
 | 
					 | 
				
			||||||
  </tbody>
 | 
					 | 
				
			||||||
</table>
 | 
					 | 
				
			||||||
<p>Pixel formats or X Visuals describe the per-pixel attributes of the
 | 
					 | 
				
			||||||
frame buffer.  For example, bits per color component, Z buffer size,
 | 
					 | 
				
			||||||
stencil size, TrueColor vs PseudoColor, etc.</p>
 | 
					 | 
				
			||||||
<p>Drawing surfaces or X Windows typically describe a spatial
 | 
					 | 
				
			||||||
allocation of the frame buffer (i.e. the position and size of a
 | 
					 | 
				
			||||||
rectangular region of pixels).  Since MiniGLX doesn't really support a
 | 
					 | 
				
			||||||
window system, the window is effectively the entire frame buffer.</p>
 | 
					 | 
				
			||||||
<p>A rendering context represents the current OpenGL state such as
 | 
					 | 
				
			||||||
current drawing color, line width, blending mode, texture parameters,
 | 
					 | 
				
			||||||
etc. Several rendering contexts can be created but only one can be in
 | 
					 | 
				
			||||||
use at any given time.</p>
 | 
					 | 
				
			||||||
<p>The Mini GLX interface provides all the functions needed for
 | 
					 | 
				
			||||||
choosing pixel formats, create drawing surfaces, creating rendering
 | 
					 | 
				
			||||||
contexts and binding rendering contexts to drawing surfaces.<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<h1>3. Using Mini GLX</h1>
 | 
					 | 
				
			||||||
<p>To use the Mini GLX interface in your application, include the
 | 
					 | 
				
			||||||
GL/miniglx.h header file at compile time:</p>
 | 
					 | 
				
			||||||
<blockquote><code>	#include <GL/miniglx.h><br>
 | 
					 | 
				
			||||||
  </code></blockquote>
 | 
					 | 
				
			||||||
<code></code>Applications should link with libGL.so (i.e. <code>gcc
 | 
					 | 
				
			||||||
myprogram.o -lGL -o myprogram</code>).  libGL.so implements the
 | 
					 | 
				
			||||||
MiniGLX API functions and, in turn, loads a hardware-specific device
 | 
					 | 
				
			||||||
driver (such as <code>radeon_dri.so</code>) at runtime.  The
 | 
					 | 
				
			||||||
environment variable <code>LIBGL_DRIVERS_PATH</code> should name the
 | 
					 | 
				
			||||||
directory where these modules are located.<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
Prior to running a MiniGXL application, the following kernel modules
 | 
					 | 
				
			||||||
must be installed:<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<div style="margin-left: 40px;"> agpgart.o<br>
 | 
					 | 
				
			||||||
radeonfb.o  (assuming Radeon hardware)<br>
 | 
					 | 
				
			||||||
radeon.o  (assuming Radeon hardware)<br>
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
<code></code> <br>
 | 
					 | 
				
			||||||
Finally, MiniGLX reads a configuration file (by default,<code>
 | 
					 | 
				
			||||||
/etc/miniglx.conf</code>) to determine basic configuration information.
 | 
					 | 
				
			||||||
 The configuration file may also be located in the directory
 | 
					 | 
				
			||||||
specified by the <code>MINIGLX_CONF</code> environment variable).<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
The remainder of this section describes the MiniGLX API functions.<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<h2>3.1 Initialization</h2>
 | 
					 | 
				
			||||||
<p>The XOpenDisplay function is used to initialize the graphics system:</p>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
  <pre>Display *XOpenDisplay(const char *displayname)<br></pre>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
<p>The <code>displayName</code> parameter is currently ignored in Mini
 | 
					 | 
				
			||||||
GLX. It is recommended that <code>NULL</code> be passed as the<code>displayName</code>
 | 
					 | 
				
			||||||
parameter.</p>
 | 
					 | 
				
			||||||
<p>If XOpenDisplay is able to initialize the graphics system a pointer
 | 
					 | 
				
			||||||
to a Display will be returned.  Otherwise, NULL will be returned.</p>
 | 
					 | 
				
			||||||
<h2>3.2 Choosing a Visual</h2>
 | 
					 | 
				
			||||||
<p>A visual (i.e. pixel format) must be chosen before a drawing surface
 | 
					 | 
				
			||||||
or rendering context can be created.  This is done with the
 | 
					 | 
				
			||||||
glXChooseVisual function:</p>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
  <pre>XVisualInfo *glXChooseVisual(Display *dpy, int screen, const int *attribList)<br></pre>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
<p><code>dpy</code> is a pointer to the display returned by
 | 
					 | 
				
			||||||
XOpenDisplay. </p>
 | 
					 | 
				
			||||||
<p><code>screen</code> is currently ignored by Mini GLX and should be
 | 
					 | 
				
			||||||
zero. </p>
 | 
					 | 
				
			||||||
<p><code>attribList</code> is a list of GLX attributes which describe
 | 
					 | 
				
			||||||
the desired pixel format.  It is terminated by the token <code>None</code>.
 | 
					 | 
				
			||||||
The attributes are as follows:</p>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
  <dl>
 | 
					 | 
				
			||||||
    <dt><code>GLX_USE_GL</code></dt>
 | 
					 | 
				
			||||||
    <dd>This attribute should always be present in order to maintain
 | 
					 | 
				
			||||||
compatibility with GLX.</dd>
 | 
					 | 
				
			||||||
    <dt><code>GLX_RGBA</code></dt>
 | 
					 | 
				
			||||||
    <dd>If present, only RGBA pixel formats will be considered.
 | 
					 | 
				
			||||||
Otherwise, only color index formats are considered.</dd>
 | 
					 | 
				
			||||||
    <dt><code>GLX_DOUBLEBUFFER</code></dt>
 | 
					 | 
				
			||||||
    <dd>if present, only double-buffered pixel formats will	be chosen.</dd>
 | 
					 | 
				
			||||||
    <dt><code>GLX_RED_SIZE n</code></dt>
 | 
					 | 
				
			||||||
    <dd>Must be followed by a non-negative integer indicating the
 | 
					 | 
				
			||||||
minimum number of bits per red pixel component that is acceptable.</dd>
 | 
					 | 
				
			||||||
    <dt><code>GLX_GREEN_SIZE n</code></dt>
 | 
					 | 
				
			||||||
    <dd>Must be followed by a non-negative integer indicating the
 | 
					 | 
				
			||||||
minimum number of bits per green pixel component that is acceptable.</dd>
 | 
					 | 
				
			||||||
    <dt><code>GLX_BLUE_SIZE n</code></dt>
 | 
					 | 
				
			||||||
    <dd>Must be followed by a non-negative integer indicating the
 | 
					 | 
				
			||||||
minimum number of bits per blue pixel component that is acceptable.</dd>
 | 
					 | 
				
			||||||
    <dt><code>GLX_ALPHA_SIZE n</code></dt>
 | 
					 | 
				
			||||||
    <dd>Must be followed by a non-negative integer indicating the
 | 
					 | 
				
			||||||
minimum number of bits per alpha pixel component that is acceptable.</dd>
 | 
					 | 
				
			||||||
    <dt><code>GLX_STENCIL_SIZE n</code></dt>
 | 
					 | 
				
			||||||
    <dd>Must be followed by a non-negative integer indicating the
 | 
					 | 
				
			||||||
minimum number of bits per stencil value that is acceptable.</dd>
 | 
					 | 
				
			||||||
    <dt><code>None</code></dt>
 | 
					 | 
				
			||||||
    <dd>This token is used to terminate the attribute list.</dd>
 | 
					 | 
				
			||||||
  </dl>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
<p>glXChooseVisual will return a pointer to an XVisualInfo object which
 | 
					 | 
				
			||||||
most closely matches the requirements of the attribute list.  If there
 | 
					 | 
				
			||||||
is no visual which matches the request, NULL will be returned.</p>
 | 
					 | 
				
			||||||
<p>Note that visuals with accumulation buffers and depth buffers are
 | 
					 | 
				
			||||||
not available.<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<h2>3.3 Creating a Drawing Surface</h2>
 | 
					 | 
				
			||||||
<p>Drawing surfaces are created as X windows.  For Mini GLX,
 | 
					 | 
				
			||||||
windows are <i>full-screen</i>; they cover the entire frame buffer.
 | 
					 | 
				
			||||||
 Also, Mini GLX imposes a limit of one window.  A second window
 | 
					 | 
				
			||||||
cannot be created until the first one is destroyed.</p>
 | 
					 | 
				
			||||||
<h3>3.3.1 Window Creation</h3>
 | 
					 | 
				
			||||||
<p>The XCreateWindow function is used to create a drawing surface:</p>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
  <pre>Window XCreateWindow( Display *display,<br>                      Window parent,<br>                      int x, int y,<br>                      unsigned int width, unsigned int height,<br>                      unsigned int borderWidth,<br>                      int depth,<br>                      unsigned int class,<br>                      Visual *visual,<br>                      unsigned long valuemask,<br>                      XSetWindowAttributes *attributes )<br></pre>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
<p>The parameters are as follows:</p>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
  <dl>
 | 
					 | 
				
			||||||
    <dt><code>display</code></dt>
 | 
					 | 
				
			||||||
    <dd>A Display pointer, as returned by XOpenDisplay.</dd>
 | 
					 | 
				
			||||||
    <dt><code>parent</code></dt>
 | 
					 | 
				
			||||||
    <dd>The parent window for the new window.  For Mini GLX, this
 | 
					 | 
				
			||||||
should be<code>RootWindow(dpy, 0)</code>.</dd>
 | 
					 | 
				
			||||||
    <dt><code>x, y</code></dt>
 | 
					 | 
				
			||||||
    <dd>The position of the window.  For Mini GLX, both values should
 | 
					 | 
				
			||||||
be zero.</dd>
 | 
					 | 
				
			||||||
    <dt><code>width, height</code></dt>
 | 
					 | 
				
			||||||
    <dd>The size of the window.  For Mini GLX, this specifies the
 | 
					 | 
				
			||||||
desired screen size such as 1024, 768 or 1280, 1024.</dd>
 | 
					 | 
				
			||||||
    <dt><code>borderWidth</code></dt>
 | 
					 | 
				
			||||||
    <dd>This parameter should be zero.</dd>
 | 
					 | 
				
			||||||
    <dt><code>depth</code></dt>
 | 
					 | 
				
			||||||
    <dd>The pixel depth for the window.  For Mini GLX this should be
 | 
					 | 
				
			||||||
the depth found in the XVisualInfo object returned by <code>glxChooseVisual</code>.</dd>
 | 
					 | 
				
			||||||
    <dt><code>class</code></dt>
 | 
					 | 
				
			||||||
    <dd>The window class.  For Mini GLX this value should be <code>InputOutput</code>.</dd>
 | 
					 | 
				
			||||||
    <dt><code>visual</code></dt>
 | 
					 | 
				
			||||||
    <dd>This parameter should be the <code>visual</code> field of the <code>XVisualInfo</code>
 | 
					 | 
				
			||||||
object returned by <code>glxChooseVisual</code>.</dd>
 | 
					 | 
				
			||||||
    <dt><code>valuemask</code></dt>
 | 
					 | 
				
			||||||
    <dd>This parameter indicates which fields of the <code>XSetWindowAttributes</code>
 | 
					 | 
				
			||||||
are to be used. For Mini GLX this is typically the bitmask<code>CWBackPixel
 | 
					 | 
				
			||||||
| CWBorderPixel | CWColormap</code>.</dd>
 | 
					 | 
				
			||||||
    <dt><code>attributes</code></dt>
 | 
					 | 
				
			||||||
    <dd>Initial window attributes. Of the fields in the <code>XSetWindowAttributes</code>
 | 
					 | 
				
			||||||
structure, the<code>background_pixel</code>, <code>border_pixel</code>
 | 
					 | 
				
			||||||
and <code>colormap</code> fields should be set.  See the discussion
 | 
					 | 
				
			||||||
below regarding colormaps.</dd>
 | 
					 | 
				
			||||||
  </dl>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
<p><code>XCreateWindow</code> will return a window handle if it succeeds
 | 
					 | 
				
			||||||
or zero if it fails.</p>
 | 
					 | 
				
			||||||
<h3>3.3.2 Window Mapping</h3>
 | 
					 | 
				
			||||||
<p>To display the window the XMapWindow function must be called:</p>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
  <pre>void XMapWindow(Display *dpy, Window w)</pre>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
<p>This function does nothing in Mini GLX but is required for Xlib/GLX
 | 
					 | 
				
			||||||
compatibility</p>
 | 
					 | 
				
			||||||
<h3>3.3.3 Colormaps<br>
 | 
					 | 
				
			||||||
</h3>
 | 
					 | 
				
			||||||
<p>Xlib requires specification of a colormap when creating a window.
 | 
					 | 
				
			||||||
 For purposes of interoperability, Mini GLX requires this as well,
 | 
					 | 
				
			||||||
though the colormap is not actually used.  The XCreateColormap
 | 
					 | 
				
			||||||
function is used to create a colormap:</p>
 | 
					 | 
				
			||||||
<blockquote><code>Colormap XCreateColormap(Display *dpy, Window window,
 | 
					 | 
				
			||||||
Visual *visual, int alloc)</code><br>
 | 
					 | 
				
			||||||
  <code></code></blockquote>
 | 
					 | 
				
			||||||
<p>The parameters are as follows:<br>
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
  <dl>
 | 
					 | 
				
			||||||
    <dt><code>dpy</code></dt>
 | 
					 | 
				
			||||||
    <dd>The display handle as returned by XOpenDisplay.</dd>
 | 
					 | 
				
			||||||
    <dt><code>window</code></dt>
 | 
					 | 
				
			||||||
    <dd> This parameter is ignored by Mini GLX but should be the value
 | 
					 | 
				
			||||||
returned by the <code>RootWindow(dpy, 0)</code> macro.<br>
 | 
					 | 
				
			||||||
    </dd>
 | 
					 | 
				
			||||||
    <dt><code>visual</code></dt>
 | 
					 | 
				
			||||||
    <dd>This parameter is ignored by Mini GLX but should be the visual
 | 
					 | 
				
			||||||
field of the XVisualInfo object returned by glXChooseVisual. </dd>
 | 
					 | 
				
			||||||
    <dt><code>alloc</code></dt>
 | 
					 | 
				
			||||||
    <dd>This parameter is ignored by Mini GLX but should be set to <code>AllocNone</code>.</dd>
 | 
					 | 
				
			||||||
  </dl>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<h2>3.4 Creating a Rendering Context</h2>
 | 
					 | 
				
			||||||
<p>An OpenGL rendering context is created with the <code>glXCreateContext</code>
 | 
					 | 
				
			||||||
function:</p>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
  <pre>GLXContext glXCreateContext(Display *dpy, XVisualInfo *visInfo, GLXContext shareList, Bool direct)<br></pre>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
<p>The parameters are as follows:</p>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
  <dl>
 | 
					 | 
				
			||||||
    <dt><code>dpy</code></dt>
 | 
					 | 
				
			||||||
    <dd>The display handle as returned by XOpenDisplay.</dd>
 | 
					 | 
				
			||||||
    <dt><code>visInfo</code></dt>
 | 
					 | 
				
			||||||
    <dd>The visual as returned by glXChooseVisual.</dd>
 | 
					 | 
				
			||||||
    <dt><code>shareList</code></dt>
 | 
					 | 
				
			||||||
    <dd>If non-zero, texture objects and display lists are shared with
 | 
					 | 
				
			||||||
the named rendering context. If zero, texture objects and display lists
 | 
					 | 
				
			||||||
will (initially) be private to this context. They may be shared when a
 | 
					 | 
				
			||||||
subsequent context is created.</dd>
 | 
					 | 
				
			||||||
    <dt><code>direct</code></dt>
 | 
					 | 
				
			||||||
    <dd>Specifies whether direct or indirect rendering is desired. For
 | 
					 | 
				
			||||||
Mini GLX this value is ignored but it should be set to <code>True</code>.</dd>
 | 
					 | 
				
			||||||
  </dl>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
<p><code>glXCreateContext</code> will return a GLXContext handle if it
 | 
					 | 
				
			||||||
succeeds or zero if it fails due to invalid parameter or insufficient
 | 
					 | 
				
			||||||
resources.<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<h2>3.5 Binding a Rendering Context</h2>
 | 
					 | 
				
			||||||
<p>The final step before beginning OpenGL rendering is to bind (i.e.
 | 
					 | 
				
			||||||
activate) a rendering context and drawing surface with the
 | 
					 | 
				
			||||||
glXMakeCurrent function:</p>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
  <pre>Bool glXMakeCurrent(Display *dpy, GLXDrawable drawable, GLXContext ctx)<br></pre>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
<p>The parameters are as follows:</p>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
  <dl>
 | 
					 | 
				
			||||||
    <dt><code>dpy</code></dt>
 | 
					 | 
				
			||||||
    <dd>The display handle, as returned by XOpenDisplay.</dd>
 | 
					 | 
				
			||||||
    <dt><code>drawable</code></dt>
 | 
					 | 
				
			||||||
    <dd>The window or drawable to bind to the rendering context. This
 | 
					 | 
				
			||||||
should be the value returned by XCreateWindow.</dd>
 | 
					 | 
				
			||||||
    <dt><code>ctx</code></dt>
 | 
					 | 
				
			||||||
    <dd>The rendering context to bind, as returned by glXCreateContext.</dd>
 | 
					 | 
				
			||||||
  </dl>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
<p>If glXMakeCurrent succeeds True is returned.  Otherwise False is
 | 
					 | 
				
			||||||
returned to indicate an invalid display, window or context parameter.</p>
 | 
					 | 
				
			||||||
<p>After the rendering context has been bound to the drawing surface
 | 
					 | 
				
			||||||
OpenGL rendering can begin.</p>
 | 
					 | 
				
			||||||
<p>The current rendering context may be unbound by calling
 | 
					 | 
				
			||||||
glXMakeCurrent with the window and context parameters set to zero.</p>
 | 
					 | 
				
			||||||
<p>An application may create any number of rendering contexts and bind
 | 
					 | 
				
			||||||
them as needed. Note that binding a rendering context is generally not a
 | 
					 | 
				
			||||||
light-weight operation.  Most simple OpenGL applications create
 | 
					 | 
				
			||||||
only one rendering context.<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<h2>3.6 Color Buffer Swapping</h2>
 | 
					 | 
				
			||||||
<p>A double buffered window has two color buffers: a front buffer and a
 | 
					 | 
				
			||||||
back buffer.  Normally, rendering is directed to the back buffer while
 | 
					 | 
				
			||||||
the front buffer is displayed.  When rendering of a frame is finished
 | 
					 | 
				
			||||||
the front and back buffers are swapped to provide the illusion of
 | 
					 | 
				
			||||||
instanteous screen updates.</p>
 | 
					 | 
				
			||||||
<p>The color buffers for a particular window (i.e. drawable) may be
 | 
					 | 
				
			||||||
swapped with the glXSwapBuffers command:</p>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
  <pre>void glXSwapBuffers(Display *dpy, GLXDrawable drawable)<br></pre>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
Any pending rendering commands will be completed before the buffer swap
 | 
					 | 
				
			||||||
takes place.<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
Calling glXSwapBuffers on a window which is single-buffered has no
 | 
					 | 
				
			||||||
effect.<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<h2>3.7 Releasing Resources</h2>
 | 
					 | 
				
			||||||
<h3>3.7.1 Releasing Rendering Contexts</h3>
 | 
					 | 
				
			||||||
<p>A rendering context may be destroyed by calling glXDestroyContext:</p>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
  <pre>void glXDestroyContext(Display *dpy, GLXContext ctx)<br></pre>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
<h3>3.7.2 Releasing Windows</h3>
 | 
					 | 
				
			||||||
<p>A window may be destroyed by calling XDestroyWindow:</p>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
  <pre>void XDestroyWindow(Display *dpy, Window window)<br></pre>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
<h3>3.7.3 Releasing Visuals</h3>
 | 
					 | 
				
			||||||
<p>An XVisualInfo object may be freed by calling XFree:</p>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
  <pre>void XFree(void *data)<br></pre>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
<h3>3.7.4 Releasing Colormaps</h3>
 | 
					 | 
				
			||||||
<p>A colormap may be freed by calling XFreeColormap:</p>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
  <pre>void XFreeColormap(Display *dpy, Colormap colormap)<br></pre>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
<h3>3.7.4 Releasing Display Resources</h3>
 | 
					 | 
				
			||||||
<p>When the application is about to exit, the resources associated with
 | 
					 | 
				
			||||||
the graphics system can be released by calling XCloseDisplay:</p>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
  <pre>void XCloseDisplay(Display *dpy)<br></pre>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
<p>The display handle becomes invalid at this point.<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<h2>3.8 Query Functions</h2>
 | 
					 | 
				
			||||||
<h3>3.8.1 Querying Available Visuals</h3>
 | 
					 | 
				
			||||||
A list of all available visuals can be obtained with the XGetVisualInfo
 | 
					 | 
				
			||||||
function:<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<div style="margin-left: 40px;"><code>XVisualInfo
 | 
					 | 
				
			||||||
*XGetVisualInfo(Display *dpy, long vinfo_mask, XVisualInfo
 | 
					 | 
				
			||||||
*vinfo_template, int *nitems_return)<br>
 | 
					 | 
				
			||||||
</code></div>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
The parameters are as follows:<br>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
  <dl>
 | 
					 | 
				
			||||||
    <dt><code>dpy</code></dt>
 | 
					 | 
				
			||||||
    <dd>The display handle, as returned by XOpenDisplay.</dd>
 | 
					 | 
				
			||||||
    <dt><code>vinfo_mask</code></dt>
 | 
					 | 
				
			||||||
    <dd>A bitmask indicating which fields of the vinfo_template are to
 | 
					 | 
				
			||||||
be matched.  The value must be VisualScreenMask.</dd>
 | 
					 | 
				
			||||||
    <dt><code>vinfo_template</code></dt>
 | 
					 | 
				
			||||||
    <dd>A template whose fields indicate which visual attributes must
 | 
					 | 
				
			||||||
be matched by the results.  The screen field of this structure must
 | 
					 | 
				
			||||||
be zero.</dd>
 | 
					 | 
				
			||||||
    <dt><code>nitems_return</code></dt>
 | 
					 | 
				
			||||||
    <dd>Returns the number of visuals returned. </dd>
 | 
					 | 
				
			||||||
  </dl>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
The return value is the address of an array of all available visuals.<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
An example of using XGetVisualInfo to get all available visuals follows:<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<div style="margin-left: 40px;"><code>XVisualInfo visTemplate, *results;</code><br>
 | 
					 | 
				
			||||||
<code>int numVisuals;</code><br>
 | 
					 | 
				
			||||||
<code>Display *dpy = XOpenDisplay(NULL);</code><br>
 | 
					 | 
				
			||||||
<code>visTemplate.screen = 0;</code><br>
 | 
					 | 
				
			||||||
<code>results = XGetVisualInfo(dpy, VisualScreenMask, &visTemplate,
 | 
					 | 
				
			||||||
&numVisuals);</code><br>
 | 
					 | 
				
			||||||
<code></code></div>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<h3>3.8.2 Querying Visual Attributes</h3>
 | 
					 | 
				
			||||||
<p>The GLX attributes of an X visual may be queried with the
 | 
					 | 
				
			||||||
glXGetConfig function:</p>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
  <pre>int glXGetConfig(Display *dpy, XVisualInfo *vis, int attribute, int *value)<br></pre>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
<p>The parameters are as follows:</p>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
  <dl>
 | 
					 | 
				
			||||||
    <dt><code>dpy</code></dt>
 | 
					 | 
				
			||||||
    <dd>The display handle, as returned by XOpenDisplay.</dd>
 | 
					 | 
				
			||||||
    <dt><code>vis</code></dt>
 | 
					 | 
				
			||||||
    <dd>The visual, as returned by glXChooseVisual.</dd>
 | 
					 | 
				
			||||||
    <dt><code>attribute</code></dt>
 | 
					 | 
				
			||||||
    <dd>The attribute to query.  The attributes are listed below.</dd>
 | 
					 | 
				
			||||||
    <dt><code>value</code></dt>
 | 
					 | 
				
			||||||
    <dd>Pointer to an integer in which the result of the query will be
 | 
					 | 
				
			||||||
stored. </dd>
 | 
					 | 
				
			||||||
  </dl>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
<p>The return value will be zero if no error occurs.<code>
 | 
					 | 
				
			||||||
 GLX_INVALID_ATTRIBUTE</code> will be returned if the attribute
 | 
					 | 
				
			||||||
parameter is invalid.<code>  GLX_BAD_VISUAL</code> will be returned
 | 
					 | 
				
			||||||
if the XVisualInfo parameter is invalid.</p>
 | 
					 | 
				
			||||||
<p>The following attributes may be queried:</p>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
  <dl>
 | 
					 | 
				
			||||||
    <dt><code>GLX_USE_GL</code></dt>
 | 
					 | 
				
			||||||
    <dd>The result will be <code>True</code> or <code>False</code> to
 | 
					 | 
				
			||||||
indicate if OpenGL rendering is supported with the visual.  Mini GLX
 | 
					 | 
				
			||||||
always return <code>True</code>.</dd>
 | 
					 | 
				
			||||||
    <dt><code>GLX_RGBA</code></dt>
 | 
					 | 
				
			||||||
    <dd>The result will be <code>True</code> for RGBA visuals or <code>False</code>
 | 
					 | 
				
			||||||
for color index visuals.</dd>
 | 
					 | 
				
			||||||
    <dt><code>GLX_DOUBLEBUFFER</code></dt>
 | 
					 | 
				
			||||||
    <dd>The result will be <code>True</code> if the visual has two
 | 
					 | 
				
			||||||
color buffers or <code>False</code> if the visual has one color buffer.</dd>
 | 
					 | 
				
			||||||
    <dt><code>GLX_RED_SIZE</code></dt>
 | 
					 | 
				
			||||||
    <dd>The result will be the number of red bits per pixel.</dd>
 | 
					 | 
				
			||||||
    <dt><code>GLX_GREEN_SIZE</code></dt>
 | 
					 | 
				
			||||||
    <dd>The result will be the number of green bits per pixel.</dd>
 | 
					 | 
				
			||||||
    <dt><code>GLX_BLUE_SIZE</code></dt>
 | 
					 | 
				
			||||||
    <dd>The result will be the number of blue bits per pixel.</dd>
 | 
					 | 
				
			||||||
    <dt><code>GLX_ALPHA_SIZE</code></dt>
 | 
					 | 
				
			||||||
    <dd>The result will be the number of alpha bits per pixel.</dd>
 | 
					 | 
				
			||||||
    <dt><code>GLX_DEPTH_SIZE</code></dt>
 | 
					 | 
				
			||||||
    <dd>The result will be the number of bits per Z value.</dd>
 | 
					 | 
				
			||||||
    <dt><code>GLX_STENCIL_SIZE</code></dt>
 | 
					 | 
				
			||||||
    <dd>The result will be the number of bits per stencil value.<br>
 | 
					 | 
				
			||||||
      <br>
 | 
					 | 
				
			||||||
    </dd>
 | 
					 | 
				
			||||||
  </dl>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
<h3>3.8.3 Querying the Current Rendering Context</h3>
 | 
					 | 
				
			||||||
<p>The current rendering context can be queried with
 | 
					 | 
				
			||||||
glXGetCurrentContext: </p>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
  <pre>GLXContext glXGetCurrentContext(void)<br></pre>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
<p>Zero will be returned if no context is currently bound.<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<h3>3.8.4 Querying the Current Drawable</h3>
 | 
					 | 
				
			||||||
<p>The current drawable (i.e. window or drawing surface) can be queried
 | 
					 | 
				
			||||||
with glXGetCurrentDrawable:</p>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
  <pre>GLXDrawable glXGetCurrentDrawable(void)<br></pre>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
<p>Zero will be returned if no drawable is currently bound.<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<h3>3.8.5 Function Address Queries</h3>
 | 
					 | 
				
			||||||
<p>The glXGetProcAddress function will return the address of any
 | 
					 | 
				
			||||||
available OpenGL or Mini GLX function:</p>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
  <pre>void *glXGetProcAddress(const GLubyte *procName)<br></pre>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
<p>If <code>procName</code> is a valid function name, a pointer to that
 | 
					 | 
				
			||||||
function will be returned.  Otherwise, NULL will be returned.</p>
 | 
					 | 
				
			||||||
<p>The purpose of glXGetProcAddress is to facilitate using future
 | 
					 | 
				
			||||||
extensions to OpenGL or Mini GLX.  If a future version of the library
 | 
					 | 
				
			||||||
adds new extension functions they'll be accessible via
 | 
					 | 
				
			||||||
glXGetProcAddress. The alternative is to hard-code calls to the new
 | 
					 | 
				
			||||||
functions in the application but doing so will prevent linking the
 | 
					 | 
				
			||||||
application with older versions of the library.<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<h2>3.9 Versioning</h2>
 | 
					 | 
				
			||||||
The Mini GLX version can be queried at run time with glXQueryVersion:
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
  <pre>Bool glXQueryVersion(Display *dpy, int *major, int *minor)<br></pre>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
<p><code>major</code> will be set to the major version number and<code>minor</code>
 | 
					 | 
				
			||||||
will be set to the minor version number.<code>True</code> will be
 | 
					 | 
				
			||||||
returned if the function succeeds. <code>False</code> will be returned
 | 
					 | 
				
			||||||
if the function fails due to invalid parameters. The <code>dpy</code>
 | 
					 | 
				
			||||||
argument is currently ignored, but should be the value returned by
 | 
					 | 
				
			||||||
XOpenDisplay.</p>
 | 
					 | 
				
			||||||
<p>At compile time, the Mini GLX interface version can be tested with
 | 
					 | 
				
			||||||
the MINI_GLX_VERSION_1_<i>x</i> preprocessor tokens. For example, if
 | 
					 | 
				
			||||||
version 1.0 of Mini GLX is supported, then<code> MINI_GLX_VERSION_1_0</code>
 | 
					 | 
				
			||||||
will be defined. If version 1.1 of Mini GLX is supported, then<code>
 | 
					 | 
				
			||||||
MINI_GLX_VERSION_1_1</code> will be defined.</p>
 | 
					 | 
				
			||||||
<p>At the time of writing the current Mini GLX version is 1.0.<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<h1>4.0 Interoperability with GLX and Xlib</h1>
 | 
					 | 
				
			||||||
While Mini GLX strives to be compatible with GLX and Xlib there are
 | 
					 | 
				
			||||||
some unavoidable differences which must be taken into consideration.<br>
 | 
					 | 
				
			||||||
<h2>4.1 Public vs Private Structures</h2>
 | 
					 | 
				
			||||||
The structure of many X data types is public.  For example, the <code>Display</code>
 | 
					 | 
				
			||||||
data type is defined as a structure in /usr/include/X11/Xlib.h and
 | 
					 | 
				
			||||||
programmers may access any fields of that structure at will.  Mini
 | 
					 | 
				
			||||||
GLX also defines a Display data type but its fields are hidden and not
 | 
					 | 
				
			||||||
visiblein <code>miniglx.h</code>.  Duplicating the Xlib
 | 
					 | 
				
			||||||
declaration for the <code>Display</code> data type in minigl.h would
 | 
					 | 
				
			||||||
require defining a large number of other superfluous Xlib datatypes.<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
Mini GLX users are discouraged from directly accessing the fields of
 | 
					 | 
				
			||||||
Xlib data types to maximize portability - though this is unavoidable to
 | 
					 | 
				
			||||||
some extent.  For example, the <code>XVisualInfo</code> and <code>XSetWindowAtttributes</code>
 | 
					 | 
				
			||||||
data types must be completely public.
 | 
					 | 
				
			||||||
<h2>4.2 Macros</h2>
 | 
					 | 
				
			||||||
In some cases, Xlib defines macros which are meant to be used instead
 | 
					 | 
				
			||||||
of direct structure accesses.  For example, the <code>RootWindow(dpy,
 | 
					 | 
				
			||||||
screen)</code> macro returns the root window for a given screen on a
 | 
					 | 
				
			||||||
given display.  Unfortunately, macros do nothing to aid in ABI
 | 
					 | 
				
			||||||
compatibility since they are resolved at compile time instead of at
 | 
					 | 
				
			||||||
link/run time.<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
Mini GLX also defines a <code>RootWindow</code> macro since it's
 | 
					 | 
				
			||||||
essential for creating windows.  But the implementation of this
 | 
					 | 
				
			||||||
macro by Xlib and Mini GLX is completely different.<br>
 | 
					 | 
				
			||||||
<h2>4.3 Summary</h2>
 | 
					 | 
				
			||||||
Because Xlib and Mini GLX define data types and macros differently,
 | 
					 | 
				
			||||||
Mini GLX applications must be recompiled when retargeting Mini GLX or
 | 
					 | 
				
			||||||
native Xlib/GLX.  That is, applications can't simply be re-linked
 | 
					 | 
				
			||||||
because of ABI incompatibilities.<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
Nevertheless, the fact that Mini GLX programs can be recompiled for
 | 
					 | 
				
			||||||
Xlib and GLX increases portability and flexibility for testing and
 | 
					 | 
				
			||||||
prototyping.<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<h1>5.0 Example Program</h1>
 | 
					 | 
				
			||||||
<p>This section shows an example program which uses the Mini GLX
 | 
					 | 
				
			||||||
interface. The program simply draws several frames of a rotating square.<br>
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>The program may be compiled for use with Xlib/GLX or Mini GLX by
 | 
					 | 
				
			||||||
setting the <code>USE_MINIGLX</code> token to 0 or 1, respectively.
 | 
					 | 
				
			||||||
 Note that the only difference is the header files which are
 | 
					 | 
				
			||||||
included.<br>
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p> </p>
 | 
					 | 
				
			||||||
<pre><code><br></code>#define USE_MINIGLX 1  /* 1 = use Mini GLX, 0 = use Xlib/GLX */<br><br>#include <stdio.h><br>#include <stdlib.h><br>#include <GL/gl.h><br><br>#if USE_MINIGLX<br>#include <GL/miniglx.h><br>#else<br>#include <GL/glx.h><br>#include <X11/Xlib.h><br>#endif<br><br><code>/*<br> * Create a simple double-buffered RGBA window.<br> */<br>static Window<br>MakeWindow(Display * dpy, unsigned int width, unsigned int height)<br>{<br>   int visAttributes[] = {<br>      GLX_RGBA,<br>      GLX_RED_SIZE, 1,<br>      GLX_GREEN_SIZE, 1,<br>      GLX_BLUE_SIZE, 1,<br>      GLX_DOUBLEBUFFER,<br>      None<br>   };<br>   XSetWindowAttributes attr;<br>   unsigned long attrMask;<br>   Window root;<br>   Window win;<br>   GLXContext ctx;<br>   XVisualInfo *visinfo;<br><br>   root = RootWindow(dpy, 0);<br><br>   /* Choose GLX visual / pixel format */<br>   visinfo = glXChooseVisual(dpy, 0, visAttributes);<br>   if (!visinfo) {<br>      printf("Error: couldn't get an RGB, Double-buffered visual\n");<br>      exit(1);<br>   }<br><br>   /* Create the window */<br>   attr.background_pixel = 0;<br>   attr.border_pixel = 0;<br>   attr.colormap = XCreateColormap(dpy, root, visinfo->visual, AllocNone);<br>   attrMask = CWBackPixel | CWBorderPixel | CWColormap;<br>   win = XCreateWindow(dpy, root, 0, 0, width, height,<br>		       0, visinfo->depth, InputOutput,<br>		       visinfo->visual, attrMask, &attr);<br>   if (!win) {<br>      printf("Error: XCreateWindow failed\n");<br>      exit(1);<br>   }<br><br>   /* Display the window */<br>   XMapWindow(dpy, win);<br><br>   /* Create GLX rendering context */<br>   ctx = glXCreateContext(dpy, visinfo, NULL, True);<br>   if (!ctx) {<br>      printf("Error: glXCreateContext failed\n");<br>      exit(1);<br>   }<br><br>   /* Bind the rendering context and window */<br>   glXMakeCurrent(dpy, win, ctx);<br><br>   return win;<br>}<br><br><br>/*<br> * Draw a few frames of a rotating square.<br> */<br>static void<br>DrawFrames(Display * dpy, Window win)<br>{<br>   int angle;<br>   glShadeModel(GL_FLAT);<br>   glClearColor(0.5, 0.5, 0.5, 1.0);<br>   for (angle = 0; angle < 360; angle += 10) {<br>      glClear(GL_COLOR_BUFFER_BIT);<br>      glColor3f(1.0, 1.0, 0.0);<br>      glPushMatrix();<br>      glRotatef(angle, 0, 0, 1);<br>      glRectf(-0.8, -0.8, 0.8, 0.8);<br>      glPopMatrix();<br>      glXSwapBuffers(dpy, win);<br>   }<br>}<br><br><br>int<br>main(int argc, char *argv[])<br>{<br>   Display *dpy;<br>   Window win;<br><br>   dpy = XOpenDisplay(NULL);<br>   if (!dpy) {<br>      printf("Error: XOpenDisplay failed\n");<br>      return 1;<br>   }<br><br>   win = MakeWindow(dpy, 300, 300);<br><br>   DrawFrames(dpy, win);<br><br>   return 0;<br>}<br></code></pre>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
@@ -1,26 +1,6 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                            3Dfx Glide device driver
 | 
					                     3Dfx Glide device driver for Mesa 3.2
 | 
				
			||||||
 | 
									(see below for FAQ)
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Info for Mesa 4.1
 | 
					 | 
				
			||||||
-----------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The 3dfx Glide driver in Mesa is disabled by default.  Not too many people
 | 
					 | 
				
			||||||
use this driver anymore and at some point down the road it will be dropped.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
To use/enable the Glide driver either do this:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
'./configure --with-glide=DIR'    Where DIR is the location of Glide, like
 | 
					 | 
				
			||||||
                                  /usr/ or /usr/local
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OR
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
'make linux-x86-glide'     If using the old-style Makefile system.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The rest of this file hasn't changed since Mesa 3.3.  Some of it's out of
 | 
					 | 
				
			||||||
date, but some is still valid.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What do you need ?
 | 
					What do you need ?
 | 
				
			||||||
@@ -32,6 +12,8 @@ What do you need ?
 | 
				
			|||||||
	  under Linux (more information in the "Useful Glide Environment
 | 
						  under Linux (more information in the "Useful Glide Environment
 | 
				
			||||||
	  Variables");
 | 
						  Variables");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						- Mesa 3.1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	- The 3Dfx Glide library 2.3 or later for your OS (the 2.4 works fine).
 | 
						- 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
 | 
						  The Voodoo2 requires the Glide library 2.51. The Glide 3.1 is not
 | 
				
			||||||
	  compatible with the Glide 2.x so it doesn't work with the current
 | 
						  compatible with the Glide 2.x so it doesn't work with the current
 | 
				
			||||||
@@ -40,6 +22,8 @@ What do you need ?
 | 
				
			|||||||
	- A compiler supported by the Glide library (Micro$oft VC++ (tested),
 | 
						- A compiler supported by the Glide library (Micro$oft VC++ (tested),
 | 
				
			||||||
	  Watcom (tested), GCC for Linux (tested), etc.);
 | 
						  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
 | 
						- It's nice to have two monitors - one for your normal graphics
 | 
				
			||||||
	  card and one for your 3Dfx card. If something goes wrong with
 | 
						  card and one for your 3Dfx card. If something goes wrong with
 | 
				
			||||||
	  an application using the 3Dfx hardware you can still see your
 | 
						  an application using the 3Dfx hardware you can still see your
 | 
				
			||||||
@@ -200,9 +184,9 @@ Doing more with Mesa & Linux Glide:
 | 
				
			|||||||
	   quality. However you can use any visual depth supported by X.
 | 
						   quality. However you can use any visual depth supported by X.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	2. Set the following environment variables:
 | 
						2. Set the following environment variables:
 | 
				
			||||||
		export MESA_GLX_FX="window"	# to enable window rendering
 | 
							export MESA_GLX_FX="window"	// to enable window rendering
 | 
				
			||||||
		export SST_VGA_PASS=1	# to stop video signal switching
 | 
							export SST_VGA_PASS=1	// to stop video signal switching
 | 
				
			||||||
		export SST_NOSHUTDOWN=1	# to stop video signal switching
 | 
							export SST_NOSHUTDOWN=1	// to stop video signal switching
 | 
				
			||||||
	    OR
 | 
						    OR
 | 
				
			||||||
		setenv MESA_GLX_FX window
 | 
							setenv MESA_GLX_FX window
 | 
				
			||||||
		setenv SST_VGA_PASS 1
 | 
							setenv SST_VGA_PASS 1
 | 
				
			||||||
@@ -220,9 +204,6 @@ Doing more with Mesa & Linux Glide:
 | 
				
			|||||||
	visual depth doesn't match the Voodoo framebufffer bit per pixel, it
 | 
						visual depth doesn't match the Voodoo framebufffer bit per pixel, it
 | 
				
			||||||
	is required also a pixel format translation).
 | 
						is required also a pixel format translation).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	NOTE: the in-window rendering feature only works with double-buffering.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        On the fly switching between in window rendering and full screen rendering
 | 
					        On the fly switching between in window rendering and full screen rendering
 | 
				
			||||||
	--------------------------------------------------------------------------
 | 
						--------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,71 +3,61 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Introduction
 | 
					Introduction
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Mesa 4.1 features a driver for the BeOS.  The driver implements
 | 
					Mesa 3.1 features a new driver for the BeOS.  The new driver implements
 | 
				
			||||||
a clone of the BGLView class.  This class, derived from BView, allows
 | 
					a clone of the BGLView class.  This class, derived from BView, allows
 | 
				
			||||||
OpenGL rendering into a BeOS window.
 | 
					OpenGL rendering into a BeOS window.
 | 
				
			||||||
The 4.1 BeOS driver is an update of Brian Paul's BeOS driver released in Mesa 3.1.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
Any application which uses the BGLView should be able to use Mesa
 | 
					Any application which uses the BGLView should be able to use Mesa
 | 
				
			||||||
instead of Be's OpenGL without changing any code.
 | 
					instead of Be's OpenGL without changing any code.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Since Be's OpenGL implementation (as of R5) is basically just the
 | 
					Since Be's OpenGL implementation (as of R4) is basically just the
 | 
				
			||||||
SGI sample implementation, it's pretty slow.  You'll see that Mesa
 | 
					SGI sample implementation, it's pretty slow.  You'll see that Mesa
 | 
				
			||||||
is considerably faster.
 | 
					is considerably faster.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Source Code
 | 
					Source Code
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The source code for the driver is in Mesa-4.1/src/BeOS/ directory.
 | 
					The source code for the driver is in Mesa-3.1/src/BeOS/GLView.cpp
 | 
				
			||||||
It's not 100% finished at this time but many GLUT-based demos are
 | 
					It's not 100% finished at this time but many GLUT-based demos are
 | 
				
			||||||
working.  No optimizations have been made at this time.
 | 
					working.  No optimizations have been made at this time.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Compiling
 | 
					Compiling
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Requirements:
 | 
					In the Mesa-3.x directory type "make -f Makefile.X11 beos-r4".
 | 
				
			||||||
  - gcc version 2.95.3 for BeOS 
 | 
					When it finishes the libMesaGL.so and libMesaGLU.so libraries for
 | 
				
			||||||
  You can find it here: http://www.bebits.com/app/2157
 | 
					BeOS will be in the Mesa-3.x/lib/ directory.
 | 
				
			||||||
 | 
					 | 
				
			||||||
Move to the Mesa-4.x src sub-directory and then type "make -f Makefile.BeOS-R5".
 | 
					 | 
				
			||||||
When it finishes the Mesa based libGL.so library for
 | 
					 | 
				
			||||||
BeOS will be in the Mesa-4.x/src/obj.{x86|ppc}/ directory.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
To install it as Be's default libGL.so replacement, put it in your 
 | 
					 | 
				
			||||||
/boot/home/config/lib/ directory. All your GL/GLUTapps will use 
 | 
					 | 
				
			||||||
the Mesa based then. 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
By default, it build a non-debug version library.
 | 
					 | 
				
			||||||
The x86 (MMX, SSE and 3DNOW) optimizations are also supported for x86 target.
 | 
					 | 
				
			||||||
Sorry, Mesa don't have ppc (Altivec) optimizations yet.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Example Programs
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
Look in the Mesa-4.x/BeOS/ directory for one or two BGLView demo
 | 
					Example Programs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Look in the Mesa-3.x/BeOS/ directory for one or two BGLView demo
 | 
				
			||||||
programs.  They should have been compiled along with the Mesa
 | 
					programs.  They should have been compiled along with the Mesa
 | 
				
			||||||
library.
 | 
					library.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* GLUT
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
A beta version of GLUT 3.7 port for BeOS can be found at 
 | 
					GLUT
 | 
				
			||||||
http://anobject.com/jehamby/Code/Glut-3.7-x86.zip.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
There's is a 2.5 version in src-glut.beos/, too.
 | 
					A version of GLUT 2.5 for BeOS can be found in src-glut.beos/.
 | 
				
			||||||
The original distribution can be obtained from
 | 
					The original distribution can be obtained from
 | 
				
			||||||
http://home.beoscentral.com/jehamby/Glut-3.5-x86.zip
 | 
					http://home.beoscentral.com/jehamby/Glut-3.5-x86.zip
 | 
				
			||||||
 | 
					
 | 
				
			||||||
They are special version of GLUT adapted for the BeOS.  I don't
 | 
					This is a special version of GLUT adapted for the BeOS.  I don't
 | 
				
			||||||
believe Mark Kilgard's normal GLUT distribution includes BeOS
 | 
					believe Mark Kilgard's normal GLUT distribution includes BeOS
 | 
				
			||||||
support.
 | 
					support.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					It seems that you have to recompile GLUT with libMesaGL.so instead
 | 
				
			||||||
 | 
					of libGL.so in order for everything to work.  I'm not sure why.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Special Features
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Special Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Mesa's implementation of the BGLView class has an extra member
 | 
					Mesa's implementation of the BGLView class has an extra member
 | 
				
			||||||
function:  CopySubBufferMESA().  It basically works like SwapBuffers()
 | 
					function:  CopySubBufferMESA().  It basically works like SwapBuffers()
 | 
				
			||||||
@@ -79,9 +69,7 @@ cause a fatal error when running with Be's OpenGL.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Work Left To Do
 | 
					Work Left To Do
 | 
				
			||||||
 | 
					 | 
				
			||||||
BDirectWindow single buffering support is not implemented yet.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
Color index mode is not implemented yet.
 | 
					Color index mode is not implemented yet.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -92,7 +80,7 @@ rendering.  This should also be implemented for Mesa.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Old BeOS Driver
 | 
					Old BeOS Driver
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Mesa 2.6 had an earlier BeOS driver.  It was based on Mesa's Off-screen
 | 
					Mesa 2.6 had an earlier BeOS driver.  It was based on Mesa's Off-screen
 | 
				
			||||||
rendering interface, not BGLView.  If you're interested in the older
 | 
					rendering interface, not BGLView.  If you're interested in the older
 | 
				
			||||||
@@ -100,7 +88,7 @@ driver you should get Mesa 2.6.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* BeOS and Glide
 | 
					BeOS and Glide
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Mesa 3.0 supported the 3Dfx/Glide library on Beos.  Download Mesa 3.0
 | 
					Mesa 3.0 supported the 3Dfx/Glide library on Beos.  Download Mesa 3.0
 | 
				
			||||||
if interested.  Ideally, the 3Dfx/Glide support should be updated to
 | 
					if interested.  Ideally, the 3Dfx/Glide support should be updated to
 | 
				
			||||||
@@ -111,4 +99,4 @@ of February, 1999.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
----------------------------------------------------------------------
 | 
					----------------------------------------------------------------------
 | 
				
			||||||
$Id: README.BEOS,v 1.7 2002/09/19 16:19:44 brianp Exp $
 | 
					$Id: README.BEOS,v 1.5.6.1 1999/11/27 01:39:50 brianp Exp $
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										226
									
								
								docs/README.DJ
									
									
									
									
									
								
							
							
						
						
									
										226
									
								
								docs/README.DJ
									
									
									
									
									
								
							@@ -1,226 +0,0 @@
 | 
				
			|||||||
			Mesa 5.1 DOS/DJGPP Port v1.4
 | 
					 | 
				
			||||||
			~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Description:
 | 
					 | 
				
			||||||
~~~~~~~~~~~~
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Well, guess what... this is the DOS port of Mesa 5.1, for DJGPP fans... Whoa!
 | 
					 | 
				
			||||||
The driver has its origins in ddsample.c, written by Brian Paul and found by me
 | 
					 | 
				
			||||||
in Mesa 3.4.2.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Legal:
 | 
					 | 
				
			||||||
~~~~~~
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa copyright applies, provided this package is used within Mesa. For anything
 | 
					 | 
				
			||||||
else, see GPL.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Installation:
 | 
					 | 
				
			||||||
~~~~~~~~~~~~~
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Unzip and type:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	make -f Makefile.DJ [OPTIONS...]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Available options:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
     Environment variables:
 | 
					 | 
				
			||||||
	CPU		optimize for the given processor.
 | 
					 | 
				
			||||||
			default = pentium
 | 
					 | 
				
			||||||
	GLU=[mesa|sgi]	specify GLU directory; can be `sgi' (requires GNU/C++)
 | 
					 | 
				
			||||||
			or `mesa'.
 | 
					 | 
				
			||||||
			default = mesa
 | 
					 | 
				
			||||||
	GLIDE		path to Glide3 SDK; used with FX.
 | 
					 | 
				
			||||||
			default = $(TOP)/glide3
 | 
					 | 
				
			||||||
	FX=1		build for 3dfx Glide3. Note that this disables
 | 
					 | 
				
			||||||
			compilation of most DMesa code and requires fxMesa.
 | 
					 | 
				
			||||||
			As a consequence, you'll need the DJGPP Glide3
 | 
					 | 
				
			||||||
			library to build any application.
 | 
					 | 
				
			||||||
			default = no
 | 
					 | 
				
			||||||
	MATROX=1	build for Matrox Millennium I (MGA2064W) cards.
 | 
					 | 
				
			||||||
			This is experimental and not intensively tested.
 | 
					 | 
				
			||||||
			default = no
 | 
					 | 
				
			||||||
	HAVE_X86=1	optimize for i386.
 | 
					 | 
				
			||||||
			default = no
 | 
					 | 
				
			||||||
	HAVE_MMX=1	allow MMX specializations, provided your assembler
 | 
					 | 
				
			||||||
			supports MMX instruction set. However, the true CPU
 | 
					 | 
				
			||||||
			capabilities are checked at run-time to avoid lockups.
 | 
					 | 
				
			||||||
			default = no
 | 
					 | 
				
			||||||
	HAVE_SSE=1	(see HAVE_MMX)
 | 
					 | 
				
			||||||
			default = no
 | 
					 | 
				
			||||||
	HAVE_3DNOW=1	(see HAVE_MMX)
 | 
					 | 
				
			||||||
			default = no
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
     Targets:
 | 
					 | 
				
			||||||
	all:		build everything
 | 
					 | 
				
			||||||
	libgl:		build GL
 | 
					 | 
				
			||||||
	libglu:		build GLU
 | 
					 | 
				
			||||||
	libglut:	build GLUT
 | 
					 | 
				
			||||||
	clean:		remove object files
 | 
					 | 
				
			||||||
	realclean:	remove all generated files
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Tested on:
 | 
					 | 
				
			||||||
	CPU:		AMD Athlon XP 1800+
 | 
					 | 
				
			||||||
	Mainboard:	EP-8KTA3 w/ 128 MB SDRAM
 | 
					 | 
				
			||||||
	Video card:	Voodoo5 5500 AGP w/ 64 MB SDRAM
 | 
					 | 
				
			||||||
	DJGPP:		djdev 2.04 + gcc v3.2.2 + make v3.80
 | 
					 | 
				
			||||||
	OS:		DOS and Win98SE
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
FAQ:
 | 
					 | 
				
			||||||
~~~~
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
1. Compilation
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   Q) `make' barfs and exits because it cannot find some stupid file.
 | 
					 | 
				
			||||||
   A) You need LFN support.
 | 
					 | 
				
			||||||
   A) When compiling for Glide (FX=1), pay attention to Glide path.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   Q) Libraries built OK, but linker complains about `vsnprintf' every time I
 | 
					 | 
				
			||||||
      compile some demo.
 | 
					 | 
				
			||||||
   A) Upgrade to DJGPP 2.04.
 | 
					 | 
				
			||||||
   A) Add `vsnprintf.c' to the CORE_SOURCES in `src/Makefile.DJ' (untested!).
 | 
					 | 
				
			||||||
   A) Patch `src/mesa/main/imports.c' with the following line:
 | 
					 | 
				
			||||||
	#define vsnprintf(buf, max, fmt, arg) vsprintf(buf, fmt, arg)
 | 
					 | 
				
			||||||
      This hack should be safe in 90% of the cases, but if anything goes wrong,
 | 
					 | 
				
			||||||
      don't come back to me crying.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   Q) `make' complains about DXE3 or something, yet it builds the libraries.
 | 
					 | 
				
			||||||
   A) DXE3 refers to the DJGPP dynamic modules. You'll need either the latest
 | 
					 | 
				
			||||||
      DJGPP distro, or download the separate package from my web page. Read the
 | 
					 | 
				
			||||||
      DXE3 documentation on how to use them.
 | 
					 | 
				
			||||||
   A) When compiling for Glide (FX=1), make sure `glide3x.dxe' can be found in
 | 
					 | 
				
			||||||
      LD_LIBRARY_PATH (or top `lib' directory).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
2. Using Mesa for DJGPP
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   Q) DMesa is so SLOOOW! The Win32 OpenGL performs so much better...
 | 
					 | 
				
			||||||
   A) Is that a question? If you have a 3dfx Voodoo Banshee or higher card,
 | 
					 | 
				
			||||||
      you're lucky (check http://sourceforge.net/projects/glide for the DJGPP
 | 
					 | 
				
			||||||
      port). If you have a Matrox Millennium I card, you just MIGHT be lucky...
 | 
					 | 
				
			||||||
      If you haven't, sorry; everything is done in software. Suggestions?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   Q) I tried to set refresh rate w/ DMesa, but without success.
 | 
					 | 
				
			||||||
   A) Refresh rate control works only for VESA 3.0. If you were compiling for
 | 
					 | 
				
			||||||
      Glide, see Glide info. If not, sorry!
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   Q) I made a simple application and it does nothing. It exits right away. Not
 | 
					 | 
				
			||||||
      even a blank screen.
 | 
					 | 
				
			||||||
   A) The pure software drivers (VESA/VGA) support only double-buffered modes.
 | 
					 | 
				
			||||||
   A) Another weird "feature" is that buffer width must be multiple of 8 (I'm a
 | 
					 | 
				
			||||||
      lazy programmer and I found that the easiest way to keep buffer handling
 | 
					 | 
				
			||||||
      at peak performance ;-).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   Q) The GLUT is incomplete.
 | 
					 | 
				
			||||||
   A) See below.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
libGLUT (the toolkit):
 | 
					 | 
				
			||||||
~~~~~~~~~~~~~~~~~~~~~~
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Well, this "skeletal" GLUT implementation was taken from AllegGL project and
 | 
					 | 
				
			||||||
heavily changed. Thanks should go to Bernhard Tschirren, Mark Kilgard, Brian
 | 
					 | 
				
			||||||
Paul and probably others (or probably not ;-). GLUT functionality will be
 | 
					 | 
				
			||||||
extended only on an "as needed" basis.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLUT talks to hardware via PC_HW package which was put together from various
 | 
					 | 
				
			||||||
pieces I wrote long time ago. It consists from the keyboard, mouse and timer
 | 
					 | 
				
			||||||
drivers.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
My keyboard driver used only scancodes; as GLUT requires ASCII values for keys,
 | 
					 | 
				
			||||||
I borrowed the translation tables (and maybe more) from Allegro -- many thanks
 | 
					 | 
				
			||||||
to Shawn Hargreaves et co. Ctrl-Alt-Del (plus Ctrl-Alt-End, for Windows users)
 | 
					 | 
				
			||||||
will shut down the GLUT engine unconditionally: it will raise SIGINT, which in
 | 
					 | 
				
			||||||
turn will (hopefully) call the destructors, thus cleaning up your/my mess ;-)
 | 
					 | 
				
			||||||
NB: since the DJGPP guys ensured signal handlers won't go beyond program's
 | 
					 | 
				
			||||||
space (and since dynamic modules shall) the SIGINT can't be hooked (well, it
 | 
					 | 
				
			||||||
can, but it is useless), therefore you must live with the 'Exiting due to
 | 
					 | 
				
			||||||
signal SIGINT' message...
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The mouse driver is far from complete (lack of drawing, etc), but is enough to
 | 
					 | 
				
			||||||
make almost all the demos work. Supports the CuteMouse WheelAPI.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The timer is pretty versatile for it supports multiple timers with different
 | 
					 | 
				
			||||||
frequencies. While not being the most accurate timer in the known universe, I
 | 
					 | 
				
			||||||
think it's OK. Take this example: you have timer A with a very high rate, and
 | 
					 | 
				
			||||||
then you have timer B with very low rate compared to A; now, A ticks OK, but
 | 
					 | 
				
			||||||
timer B will probably loose precision!
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
As an addition, stdout and stderr are redirected and dumped upon exit. This
 | 
					 | 
				
			||||||
means that `printf' can be safely called during graphics. A bit of a hack, I
 | 
					 | 
				
			||||||
know, because all messages come in bulk, but I think it's better than nothing.
 | 
					 | 
				
			||||||
"Borrowed" from LIBRHUTI (Robert Hoehne).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Window creating defaults: (0, 0, 300, 300), 16bpp. However, the video mode is
 | 
					 | 
				
			||||||
chosen in such a way that first window will fit. If you need high resolution
 | 
					 | 
				
			||||||
with small windows, set initial position far to the right (or way down); then
 | 
					 | 
				
			||||||
you can move them back to any position right before the main loop.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The following environment variables can customize GLUT behaviour:
 | 
					 | 
				
			||||||
	GLUT_FPS		- print frames/second statistics to stderr
 | 
					 | 
				
			||||||
	DMESA_GLUT_REFRESH	- set vertical screen refresh rate (VESA3)
 | 
					 | 
				
			||||||
	DMESA_GLUT_BPP		- set default bits per pixel (VGA needs 8)
 | 
					 | 
				
			||||||
	DMESA_GLUT_ALPHA	- set default alpha bits (8)
 | 
					 | 
				
			||||||
	DMESA_GLUT_DEPTH	- set default depth bits (16)
 | 
					 | 
				
			||||||
	DMESA_GLUT_STENCIL	- set default stencil bits (8)
 | 
					 | 
				
			||||||
	DMESA_GLUT_ACCUM	- set default accum bits (16)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
History:
 | 
					 | 
				
			||||||
~~~~~~~~
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
v1.0 (mar-2002)
 | 
					 | 
				
			||||||
	initial release
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
v1.1 (sep-2002)
 | 
					 | 
				
			||||||
	+ added 3dfx Glide3 support
 | 
					 | 
				
			||||||
	+ added refresh rate control
 | 
					 | 
				
			||||||
	+ added fonts in GLUT
 | 
					 | 
				
			||||||
	* lots of minor changes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
v1.2 (nov-2002)
 | 
					 | 
				
			||||||
	* synced w/ Mesa-4.1
 | 
					 | 
				
			||||||
	- removed dmesadxe.h
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
v1.3 (mar-2003)
 | 
					 | 
				
			||||||
	+ enabled OpenGL 1.4 support
 | 
					 | 
				
			||||||
	+ added MMX clear/blit routines
 | 
					 | 
				
			||||||
	+ enabled SGI's GLU compilation
 | 
					 | 
				
			||||||
	+ added samples makefile
 | 
					 | 
				
			||||||
	+ added new GLUT functions
 | 
					 | 
				
			||||||
	+ added color-index modes
 | 
					 | 
				
			||||||
	+ added Matrox Millennium MGA2064W driver
 | 
					 | 
				
			||||||
	+ added 8bit FakeColor (thanks to Neil Funk)
 | 
					 | 
				
			||||||
	+ added VGA support (to keep Ben Decker happy)
 | 
					 | 
				
			||||||
	! fixed some compilation errors (reported by Chan Kar Heng)
 | 
					 | 
				
			||||||
	* optimized driver for faster callback access... yeah, right :)
 | 
					 | 
				
			||||||
	* overhauled virtual buffer and internal video drivers
 | 
					 | 
				
			||||||
	* better fxMesa integration
 | 
					 | 
				
			||||||
	* revamped GLUT
 | 
					 | 
				
			||||||
	* switched to DXE3
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
v1.4 (oct-2003)
 | 
					 | 
				
			||||||
	+ enabled GLUT fonts with DXE
 | 
					 | 
				
			||||||
	+ truly added multi-window support in GLUT (for Adrian Woodward)
 | 
					 | 
				
			||||||
	* accomodated makefiles with the new sourcetree
 | 
					 | 
				
			||||||
	* fixed some ALPHA issues
 | 
					 | 
				
			||||||
	x hacked and slashed the 3dfx driver (w/ help from Hiroshi Morii)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Contact:
 | 
					 | 
				
			||||||
~~~~~~~~
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Name:   Borca Daniel
 | 
					 | 
				
			||||||
E-mail: dborca@users.sourceforge.net
 | 
					 | 
				
			||||||
WWW:    http://www.geocities.com/dborca/
 | 
					 | 
				
			||||||
@@ -34,14 +34,14 @@ Installing GCC-2.95.2/Mingw32 Build:
 | 
				
			|||||||
	
 | 
						
 | 
				
			||||||
	e) Edit the mingw32.bat file to accomodate your choice of directory structure.
 | 
						e) Edit the mingw32.bat file to accomodate your choice of directory structure.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		%mesaroot%:	This is your root directory (Mesa-3.3)
 | 
							%mesaroot%:	This is your root directory (Mesa-3.2)
 | 
				
			||||||
		%mesasrc%:	This is the Mesa-3.3 src directory (Mesa-3.3\src)
 | 
							%mesasrc%:	This is the Mesa-3.2 src directory (Mesa-3.2\src)
 | 
				
			||||||
		%mesalib%:	This is where the build will put libGL.a and libGLU.a
 | 
							%mesalib%:	This is where the build will put libGL.a and libGLU.a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Running the Build:
 | 
					Running the Build:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	Open your Command Prompt or MS-DOS prompt.
 | 
						Open your Command Prompt or MS-DOS prompt.
 | 
				
			||||||
	Go to your Mesa-3.3 'root' directory
 | 
						Go to your Mesa-3.2 'root' directory
 | 
				
			||||||
	At the command line type: mingw32
 | 
						At the command line type: mingw32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	That's all there is to it.
 | 
						That's all there is to it.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
			Mesa 3.0 MITS Information
 | 
								Mesa 3.0 MITS Information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[The MITS code hasn't been update for Mesa 3.1 and may no longer work]
 | 
				
			||||||
This software is distributed under the terms of the GNU Library
 | 
					 | 
				
			||||||
General Public License, see the LICENSE file for details.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This document is a preliminary introduction to help you get
 | 
					This document is a preliminary introduction to help you get
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,33 +1,45 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					NOTE: this information is obsolete for Mesa 3.1.  Due to the big
 | 
				
			||||||
 | 
					changes in the Mesa code, the threads support is out of date.
 | 
				
			||||||
 | 
					Someone will have to review/update it.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Mesa Threads README
 | 
					Mesa Threads README
 | 
				
			||||||
-------------------
 | 
					-------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Thread safety was introduced in Mesa 2.6 by John Stone and
 | 
					Mesa 2.6 is the starting point for an effort to make Mesa 
 | 
				
			||||||
Christoph Poliwoda.
 | 
					safe in multithreaded applications.  The files src/mthreads.c and
 | 
				
			||||||
 | 
					src/mthreads.h provide a platform independent threads API which Mesa
 | 
				
			||||||
It was redesigned in Mesa 3.3 so that thread safety is
 | 
					uses internally to provide thread-safe operation.  At present the mthreads
 | 
				
			||||||
supported by default (on systems which support threads,
 | 
					code supports three thread APIS:
 | 
				
			||||||
that is).  There is no measurable penalty on single
 | 
					 | 
				
			||||||
threaded applications.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
NOTE that the only _driver_ which is thread safe at this time
 | 
					 | 
				
			||||||
is the OS/Mesa driver!
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
At present the mthreads code supports three thread APIS:
 | 
					 | 
				
			||||||
  1) POSIX threads (aka pthreads).
 | 
					  1) POSIX threads (aka pthreads).
 | 
				
			||||||
  2) Solaris / Unix International threads.
 | 
					  2) Solaris / Unix International threads.
 | 
				
			||||||
  3) Win32 threads (Win 95/NT).
 | 
					  3) Win32 threads (Win 95/NT).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Support for other thread libraries can be added src/glthread.[ch]
 | 
					Here's the current list of targets which enable multithreaded handling
 | 
				
			||||||
 | 
					in Mesa:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  linux-386-pthread    for Linux w/ Intel assembly and linuxthreads
 | 
				
			||||||
 | 
					  sunos5-thread        for Suns with SunOS 5.x, using Solaris threads
 | 
				
			||||||
 | 
					  sunos5-pthread       for Suns with SunOS 5.[56] using POSIX threads
 | 
				
			||||||
 | 
					  sunos5-gcc-thread    for Suns with SunOS 5.x and GCC, using Solaris threads
 | 
				
			||||||
 | 
					  sunos5-gcc-pthread   for Suns with SunOS 5.[56] and GCC, using POSIX threads
 | 
				
			||||||
 | 
					
 | 
				
			||||||
In order to guarantee proper operation, it is
 | 
					In order to use Mesa with a multithreaded application, Mesa must be compiled
 | 
				
			||||||
 | 
					using one of the thread-enabled configurations.  In cases where a platform
 | 
				
			||||||
 | 
					supports multiple APIs which are acceptable to Mesa, Mesa must be built
 | 
				
			||||||
 | 
					with the same threads API as the application in order for things to work
 | 
				
			||||||
 | 
					properly.  For example, Solaris >= 2.5 support both POSIX threads and
 | 
				
			||||||
 | 
					Sun's own threads API.  In order to guarantee proper operation, it is
 | 
				
			||||||
necessary for both Mesa and application code to use the same threads API.
 | 
					necessary for both Mesa and application code to use the same threads API.
 | 
				
			||||||
So, if your application uses Sun's thread API, then you should build Mesa
 | 
					So, if your application uses Sun's thread API, then you should build Mesa
 | 
				
			||||||
using one of the targets for Sun threads.
 | 
					using one of the targets for Sun threads.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Since this effort is still very much a work in progress, not all 
 | 
				
			||||||
 | 
					aspects of Mesa are thread safe.  As of this release (Mesa 2.6) only the
 | 
				
			||||||
 | 
					osmesa drivers have been made MT-safe.  As work continues, other drivers
 | 
				
			||||||
 | 
					such as the X11 drivers will also incorporate MT-safe features.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The mtdemos directory contains some example programs which use 
 | 
					The mtdemos directory contains some example programs which use 
 | 
				
			||||||
multiple threads to render to osmesa rendering context(s).
 | 
					multiple threads to render to osmesa rendering context(s).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -38,15 +50,17 @@ only one that really supports multiprocessor machines (AFAIK). See
 | 
				
			|||||||
http://pauillac.inria.fr/~xleroy/linuxthreads/README for further
 | 
					http://pauillac.inria.fr/~xleroy/linuxthreads/README for further
 | 
				
			||||||
information about the usage of linuxthreads.
 | 
					information about the usage of linuxthreads.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
If you are interested in helping with thread safety work in Mesa
 | 
					If you are interested in helping develop MT-safe Mesa, please send email
 | 
				
			||||||
join the Mesa developers mailing list and post your proposal.
 | 
					to j.stone@acm.org and poliwoda@volumegraphics.com who are the two most
 | 
				
			||||||
 | 
					directly involved in this effort currently.  Similarly, if you have problems
 | 
				
			||||||
 | 
					using the MT-safe builds of Mesa, please send us comments/bugs etc.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Future versions of Mesa will include more extensive documentation related
 | 
				
			||||||
 | 
					to multithreading.  This is the first release of our work, so please bear
 | 
				
			||||||
 | 
					with us.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Regards,
 | 
					Regards,
 | 
				
			||||||
  John Stone           -- j.stone@acm.org  johns@cs.umr.edu
 | 
					  John Stone           -- j.stone@acm.org  johns@cs.umr.edu
 | 
				
			||||||
  Christoph Poliwoda   -- poliwoda@volumegraphics.com
 | 
					  Christoph Poliwoda   -- poliwoda@volumegraphics.com
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Version info:
 | 
					 | 
				
			||||||
   Mesa 2.6 - initial thread support.
 | 
					 | 
				
			||||||
   Mesa 3.3 - thread support mostly rewritten (Brian Paul)
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,85 +1,623 @@
 | 
				
			|||||||
File: docs/README.WIN32
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
Last updated: Sep 18, 2003 - Karl Schultz - kschultz@users.sourceforge.net
 | 
					    Mesa/Readme.win32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Quick Start
 | 
					    Last Updated: Sunday, September 19th, 1999 - tjump@tertius.com
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Unzip both ZIP files (MesaLib and MesaDemos) into the same directory.
 | 
					*** What's New
 | 
				
			||||||
The libs and demos build separately, so if you do not care about the
 | 
					 | 
				
			||||||
demos, you do not have to unzip that zip file.  But if you do, it does
 | 
					 | 
				
			||||||
need to be unzipped into the same directory as the lib zip file because
 | 
					 | 
				
			||||||
the demos depend on the libs.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
The build system has been changed to use Microsoft Visual Studio project
 | 
					- Updated for Mesa 3.1beta3/CVS. Debug and Release command-line builds of
 | 
				
			||||||
workspaces and projects.  Makefiles are no longer shipped or supported, but
 | 
					  Mesa, fxMesa, GLU, GLUT and all sample programs DLL-based. Manual
 | 
				
			||||||
can be generated from the projects using Visual Studio.
 | 
					  executions tests with minimum requisite results (aka: things looked like
 | 
				
			||||||
 | 
					  I expected them to).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Details and Notes
 | 
					  What did you expect, complete regression testing maybe?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- To build the Mesa libraries, open the Mesa.dsw workspace file
 | 
					- NASM build support. Any file in the project coded as a .S file will
 | 
				
			||||||
  in the top directory.  You can build each project one-by-one,
 | 
					  automatically be recognized and built as a NASM-source assember file.
 | 
				
			||||||
  or build the glut project to build everything except osmesa,
 | 
					 | 
				
			||||||
  which needs to be built separately.  The build process will
 | 
					 | 
				
			||||||
  create a lib directory in the top directory and will put the
 | 
					 | 
				
			||||||
  following files there:
 | 
					 | 
				
			||||||
	OPENGL32.LIB, GLU32.LIB, GLUT32.LIB, OSMESA32.LIB
 | 
					 | 
				
			||||||
	OPENGL32.DLL, GLU32.DLL, GLUT32.DLL, OSMESA32.DLL
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
- After building, you can copy the above DLL files to a place in your PATH
 | 
					  To enable building using NASM, set the environment variable NASM to
 | 
				
			||||||
  such as $SystemRoot/SYSTEM32.  If you don't like putting things in a
 | 
					  indicate that command to execute to run nasm on a file. If NASM is in
 | 
				
			||||||
  system directory, place them in the same directory as the executable(s).
 | 
					  your command search path then all this needs be set to is 'nasmw' -
 | 
				
			||||||
  Be careful about accidentially overwriting files of the same name in
 | 
					  otherwise you will need to include the complete drive and directory path.
 | 
				
			||||||
  the SYSTEM32 directory.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Build the demos by opening the appropriate *.dsw file in the
 | 
					  NASM may be retrieved here: http://www.web-sites.co.uk/nasm/
 | 
				
			||||||
  progs directory tree.  For example, to build the demos, use
 | 
					 | 
				
			||||||
  progs/demos/Windows/demos.dsw.  The Windows directory contains
 | 
					 | 
				
			||||||
  the workspace and all the projects for each demo program.  Each
 | 
					 | 
				
			||||||
  project places the executable in the same directory as its source
 | 
					 | 
				
			||||||
  code, which is required for some demos.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
- The demo projects also copy the Mesa library DLL files from the lib
 | 
					- DevStudio projects suspended for compatability reasons: projects modified
 | 
				
			||||||
  directory into the same directory as the demo executables, so that
 | 
					  by DevStudio 6 are not compatible with DevStudio 5.
 | 
				
			||||||
  the demos use the Mesa libs you just built.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
- The DLL files are built so that the external entry points use the
 | 
					  These will slowly be rebuilt and put into CVS as I can.
 | 
				
			||||||
  stdcall calling convention.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Static LIB files are not built.  The LIB files that are built with
 | 
					- Build environment change: The Glide SDK is no longer assumed to be in
 | 
				
			||||||
  are the linker import files associated with the DLL files.  
 | 
					  the global INCLUDE/LIB environment vars, it is required that you set the
 | 
				
			||||||
 | 
					  value 'GLIDE2X' as either an environment variable pointing to your Glide
 | 
				
			||||||
 | 
					  SDK install directory or that you configure that as a build option to
 | 
				
			||||||
 | 
					  nmake.exe when building fxmesagl32.  Examples:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- The si-glu sources are used to build the GLU libs.  This was done
 | 
					    nmake /f nmake.mak GLIDE2X=g:\sdk\glide2x fxmesagl32
 | 
				
			||||||
  mainly to get the better tessellator code.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
- The osmesa driver builds and should work on Windows as well as
 | 
					          <or>
 | 
				
			||||||
  any other platform.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
- The Windows driver (in src/Windows) builds and runs at least at
 | 
					    nmake /f nmake.mak GLIDE2X=g:\sdk\glide2x allfx
 | 
				
			||||||
  a minimal level.  I modified this driver to work with the new
 | 
					 | 
				
			||||||
  Mesa 4.0 code and driver architecture, but I did not do a great
 | 
					 | 
				
			||||||
  deal of optimization and testing.  There are many opportunities
 | 
					 | 
				
			||||||
  for optimization, many of which can be done by coding more specific
 | 
					 | 
				
			||||||
  paths for the rasterizers.  See src/osmesa/osmesa.c for some good
 | 
					 | 
				
			||||||
  examples.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
- There is DirectDraw support in the Windows driver, updated by
 | 
					          <or>
 | 
				
			||||||
  Daniel Slater.  You'll need to uncomment the #define DDRAW line
 | 
					 | 
				
			||||||
  in src/Windows/wmesadef.h and add ddraw.lib to the list of libraries.
 | 
					 | 
				
			||||||
  On some systems, you will acheive significantly higher framerates 
 | 
					 | 
				
			||||||
  with DirectDraw.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Some of the more specialized code like FX drivers, stereo, and
 | 
					    nmake /f nmake.mak GLIDE2X=g:\sdk\glide2x progs.3dfx.demos
 | 
				
			||||||
  parallel support isn't compiled or tested.  I left much of this
 | 
					 | 
				
			||||||
  code alone, but it may need some work to get it 'turned on' again.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
- No assembly code is compiled or assembled.  Again, this may need
 | 
					  The DevStudio workspace files for 3Dfx OpenGL require the definition of
 | 
				
			||||||
  some work to turn it back on or use it again.
 | 
					  GLIDE2SDK as an environment variable pointing to where your copy of the
 | 
				
			||||||
 | 
					  Glide SDK has been installed. Adding this to your AUTOEXEC.BAT would do
 | 
				
			||||||
 | 
					  so (change the directories to match):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
If you have a Windows-related build problem or question, it is
 | 
					       SET GLIDE2SDK=G:\SDK\GLIDE2X
 | 
				
			||||||
probably better to direct it to me (kschultz@users.sourceforge.net),
 | 
					 | 
				
			||||||
rather than directly to the other Mesa developers.  I will help you
 | 
					 | 
				
			||||||
as much as I can.  I also monitor the Mesa mailing lists and will
 | 
					 | 
				
			||||||
answer questions in this area there as well.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*** Legalese
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Karl Schultz
 | 
					These build files are provided as-is and are submitted to be included with
 | 
				
			||||||
 | 
					the "Mesa 3-D Graphics Library" package as (currently) maintained by Brian
 | 
				
			||||||
 | 
					Paul. These project build files are free software; you can redistribute it
 | 
				
			||||||
 | 
					and/or modify it under the terms of the GNU Library General Public License
 | 
				
			||||||
 | 
					as published by the Free Software Foundation; either version 2 of the
 | 
				
			||||||
 | 
					License, or (at your option) any later version.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					These project files are distributed in the hope that they will be useful,
 | 
				
			||||||
 | 
					but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library
 | 
				
			||||||
 | 
					General Public License for more details.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You should have received a copy of the GNU Library General Public License
 | 
				
			||||||
 | 
					along with this library; if not, write to the Free Software Foundation,
 | 
				
			||||||
 | 
					Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*** Maintenance Responsiblity and Technical Support
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					While these files are now part of the Mesa core distribution please do NOT
 | 
				
			||||||
 | 
					contact Mr. Paul for help with them if you encounter problems as he can't
 | 
				
			||||||
 | 
					help you (currently).  I will, however, attempt my straightforward best in
 | 
				
			||||||
 | 
					assisting anyone with using these files on their system.  I can NOT
 | 
				
			||||||
 | 
					guarantee instant responses owing to other responsiblities, but I do try
 | 
				
			||||||
 | 
					dang hard to answer any mail w/in 24 hours.  I may be contacted at the
 | 
				
			||||||
 | 
					above email address for the forseeable future.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-Ted
 | 
				
			||||||
 | 
					mailto://tjump@tertius.com
 | 
				
			||||||
 | 
					http://www.tertius.com/tjump
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*** General Information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					These build files facilitate convenient building of many variants of Mesa,
 | 
				
			||||||
 | 
					both as static link libraries (including mesaglu) and as dynamic link
 | 
				
			||||||
 | 
					libraries that in some cases may be used as "drop-in" replacements for
 | 
				
			||||||
 | 
					OpenGL32.DLL on both Windows95 and Windows NT.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The construction of the Win32 command-line build files and projects has
 | 
				
			||||||
 | 
					been something of a pet project of mine, and is based upon my own
 | 
				
			||||||
 | 
					"standard" Win32 build environment as supplied by the "nmake.mif" file.
 | 
				
			||||||
 | 
					They have been tested under Windows95 OSR2, Windows NT 4.0SP3, and Windows
 | 
				
			||||||
 | 
					NT 5.0 beta 1.  The libraries that they generated have been tested (via the
 | 
				
			||||||
 | 
					demo programs) in a *limited* fashion on the above three systems, including
 | 
				
			||||||
 | 
					the 3Dfx versions.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The reason I went with command-line build environment instead of the more
 | 
				
			||||||
 | 
					convenient IDE-based project files is for two reasons: 1. These appear to
 | 
				
			||||||
 | 
					have some amount of portability between versions (the nmake syntax hasn't
 | 
				
			||||||
 | 
					changed much since Microsoft C 7.0) while the IDE project files seem to
 | 
				
			||||||
 | 
					change drastically each version. and 2. These are readable with any ascii
 | 
				
			||||||
 | 
					editor and such are better self-documentation of the file relationships for
 | 
				
			||||||
 | 
					more people such that it will facilitate supporting other Win32 compilers.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					While these files only deal with building for x86 targeted code it *should*
 | 
				
			||||||
 | 
					be possible to add the necessary logic to them to build for the other MSVC
 | 
				
			||||||
 | 
					supported CPU targets, I simply have no hardware to test them on nor the
 | 
				
			||||||
 | 
					alternative compilers to build with.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*** Prerequisites for use
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. You must have a 32-bit Microsoft compiler installed. I have tested
 | 
				
			||||||
 | 
					this with Visual C 5.0 (SP3) and Visual C 4.2, but with minor
 | 
				
			||||||
 | 
					(possibly no) modification to the nmake.mak and nmake.mif files this
 | 
				
			||||||
 | 
					sequence should work on Visual C 2.0 also. The workspace files
 | 
				
			||||||
 | 
					(mesalib.dsw and mesademos-*.dsw) and their included project files
 | 
				
			||||||
 | 
					(*.dsp) are specific to the DevStudio IDE - I have made no attempt at
 | 
				
			||||||
 | 
					building a VC4 IDE project set as I do not use that any more.  Note
 | 
				
			||||||
 | 
					that the VC workspace files NO LONGER use NORE are dependant upon the
 | 
				
			||||||
 | 
					nmake.mak and nmake.mif files for construction of definition (*.DEF)
 | 
				
			||||||
 | 
					and resource (*.RC) files.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*** Visual C 4.x Users Warning ****
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Note that early editions of VC4 do NOT have header files current enough
 | 
				
			||||||
 | 
					for use building this code base. If you are using VC4 you will either need
 | 
				
			||||||
 | 
					to get an update to version 4.2 *or* you may download the Platform SDK
 | 
				
			||||||
 | 
					directly from Microsoft's web site (www.microsoft.com) and update your
 | 
				
			||||||
 | 
					build environment that way.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*** Visual C 4.x Users Warning ****
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					2. You must have the PATH, INCLUDE, and LIB environment variables set
 | 
				
			||||||
 | 
					properly. With VC5 you can easily get this by executing the VCVARS32.BAT
 | 
				
			||||||
 | 
					file that was created for you upon installation. It is found in the
 | 
				
			||||||
 | 
					DevStudio\VC\BIN directory, wherever you installed DevStudio. VC4 provides
 | 
				
			||||||
 | 
					a similar batch file in it's BIN directory also.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					3. (optional) If you're going to build for 3Dfx/Voodoo you will need to
 | 
				
			||||||
 | 
					have previously installed the Glide SDK version 2.3 or later, if I
 | 
				
			||||||
 | 
					recall. This may be retrieved from www.3dfx.com for no money and some
 | 
				
			||||||
 | 
					download time. ;-) These build files assume that you have the Glide SDK
 | 
				
			||||||
 | 
					added to the respective environment variables (LIB and INCLUDE).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					4. (optional) If you're going to build for S3/Virge you will need the S3
 | 
				
			||||||
 | 
					Developers Toolkit which may be downloaded from www.s3.com for the price of
 | 
				
			||||||
 | 
					registering on-line and some time. NOTE: I can build the s3mesa.dll file to
 | 
				
			||||||
 | 
					completion, however the compilation of s3mesa.c currently generates a large
 | 
				
			||||||
 | 
					amount of compiler warnings and between that and the fact that I can not at
 | 
				
			||||||
 | 
					all test it I can make no claims to it's ability to execute.  Again, like
 | 
				
			||||||
 | 
					the 3Dfx version before this, these build files assume you have the S3Dtk H
 | 
				
			||||||
 | 
					and LIB files in the path of their respective environment variables.
 | 
				
			||||||
 | 
					Note 2: As of Mesa3.0beta6 I have build files, both command-line and IDE,
 | 
				
			||||||
 | 
					which should be able to build the s3mesa code base if it weren't for updates
 | 
				
			||||||
 | 
					being required in the S3 DD code support (Mesa-3.0/src/s3 directory).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					I advise putting any include and lib files for secondary toolkits (Glide,
 | 
				
			||||||
 | 
					S3Tk, whatever) in their respective environment variables *before* the
 | 
				
			||||||
 | 
					Microsoft-assigned default values.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*** FAQ: Frequenty Asked Questions and Other Important Information ***
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- When running the 3Dfx demos under Windows NT, they crash on exit, what's
 | 
				
			||||||
 | 
					  up?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  This is apparently a problem in Glide itself. The workaround is to go to
 | 
				
			||||||
 | 
					  your C:\WINNT\SYSTEM32 directory and rename the file FXOEM2X.DLL to
 | 
				
			||||||
 | 
					  FXOEM2X.DL_ to prevent Glide from loading and initializing it upon
 | 
				
			||||||
 | 
					  startup.  This is known to be an issue with cards that do not have "TV
 | 
				
			||||||
 | 
					  out" and is known to cause crashes on Diamond Monster II 8M and 3Dfx
 | 
				
			||||||
 | 
					  Reference boards, all using 3Dfx Reference Drivers version 2.53. Other
 | 
				
			||||||
 | 
					  hardware/driver combinations will also likely exhibit this behavior.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- I'm having a problem building Mesa for static library linking.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  This was caused by some incomplete testing on my part, and a fix is now
 | 
				
			||||||
 | 
					  available in the form of an add-on to the base Mesa 3.0 release.  The
 | 
				
			||||||
 | 
					  file to get is:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       via FTP download from: iris.ssec.wisc.edu
 | 
				
			||||||
 | 
					         you want to go here: /pub/Mesa/patches_to_3.0/
 | 
				
			||||||
 | 
					        you want to get file: Mesa-3.0-w32-static-fixes.tar.gz
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  This required a minor addition to INCLUDE/GL for a clean solution, the
 | 
				
			||||||
 | 
					  file "include/gl/mesa_wgl.h" is automatically included by
 | 
				
			||||||
 | 
					  "include/gl/gl.h" when a Win32 non-DLL build is in progress to provide
 | 
				
			||||||
 | 
					  prototypes for the various wgl functions.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  The only remaining hitch in this setup is that the 3Dfx build is not yet
 | 
				
			||||||
 | 
					  running as a static build, because of problems with conflicts in
 | 
				
			||||||
 | 
					  existance of the various GDI functions like ChoosePixelFormat,
 | 
				
			||||||
 | 
					  etc. *sigh*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Anyway, the "allstatic" target now works as expected and builds all
 | 
				
			||||||
 | 
					  book/sample/demos programs to boot. ;^)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- How do I get fxMesa to render in a window on the desktop instead of only
 | 
				
			||||||
 | 
					  full-screen?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Use the Microsoft Windows fxMesa-in-a-window hack!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Seriously, if you want fxMesaGL to render using the 3Dfx Voodoo1 or
 | 
				
			||||||
 | 
					  Voodoo2 hardware into a window on the desktop then all you need to do is
 | 
				
			||||||
 | 
					  set the MESA_WGL_FX environment variable to anything other than
 | 
				
			||||||
 | 
					  "fullscreen" and it will render into a window.  If you wish to go
 | 
				
			||||||
 | 
					  fullscreen then you only need to NOT have the environment variable, or
 | 
				
			||||||
 | 
					  have it set to "fullscreen".  You may also switch at runtime between
 | 
				
			||||||
 | 
					  fullscreen-mode and windowed by pressing ALT-ENTER on the keyboard
 | 
				
			||||||
 | 
					  (unless the application using Mesa does something with those keystrokes,
 | 
				
			||||||
 | 
					  of course).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  As of 8/13/98 this should be running a LOT better for more people as a
 | 
				
			||||||
 | 
					  low-compatability item was cleaned up which prevented it from working on
 | 
				
			||||||
 | 
					  many (most?) display drivers under Windows 9x.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- I have my 3Dfx card hooked to it's own monitor and I want the output to
 | 
				
			||||||
 | 
					  stay on even if I switch to another program, is this possible?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  If the Glide environment variable SST_DUALHEAD is set to '1' then fxMesa
 | 
				
			||||||
 | 
					  will never disable the Voodoo output on a Voodoo1 or Voodoo2 display
 | 
				
			||||||
 | 
					  regardless of whether the fxMesa application is "current" or not. This
 | 
				
			||||||
 | 
					  works regardless of whether it's rendering using the window hack
 | 
				
			||||||
 | 
					  mentioned above or not.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- I want to run the Mesa demos on my Intel740 card using it's own OpenGL
 | 
				
			||||||
 | 
					  acceleration, how do I do this?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Build GLUT standalone for use with system OpenGL and GLU drivers!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  The Command-line project supports building all test/demo programs against
 | 
				
			||||||
 | 
					  these drivers also! This allows you full use of GLUT on Windows using
 | 
				
			||||||
 | 
					  hardware accelerated OpenGL. Wheee! This includes the "3dfx/demos"
 | 
				
			||||||
 | 
					  directory of which only two programs will not run on "standard"
 | 
				
			||||||
 | 
					  opengl. Note that there are a few of the sample programs which will NOT
 | 
				
			||||||
 | 
					  work without Mesa as they directly call into Mesa instead of using the
 | 
				
			||||||
 | 
					  extension mechanism.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*** Included programs that exhibit unfortunate or bad behavior
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- demos/bounce - doesn't run on high-colors screens?  It's requesting an
 | 
				
			||||||
 | 
					  INDEX display from GLUT and that fails on my true-color desktop. Changing
 | 
				
			||||||
 | 
					  this to _RGB let's the program work, but it doesn't display
 | 
				
			||||||
 | 
					  properly. This is probably just an idiosyncracy of my machine though, as
 | 
				
			||||||
 | 
					  if I test the program using GLUT for System OpenGL on my Intel740 OpenGL
 | 
				
			||||||
 | 
					  accelerated machine it's just hunky-dory.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- demos/glutfx - runs, but crashes on exit (but not on my Intel740 machine)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- demos/texobj - runs, but crashes on exit if ESC is pressed. Exits cleanly
 | 
				
			||||||
 | 
					  if the Close box on the window frame is pressed with the mouse. Go figure.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- book/aaindex - doesn't run, can't get pixel format, because it wants an
 | 
				
			||||||
 | 
					  INDEX display maybe (but is okay on my Intel740 machine)?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- most of the book/* demos don't respond to ESC being pressed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- 3dfx/demos/* - all demos run, however they all crash on exit. I've traced
 | 
				
			||||||
 | 
					  this so far as to determine the call it's happening with. The crash comes
 | 
				
			||||||
 | 
					  from within Glide during the processing of the grGlideShutdown() call, as
 | 
				
			||||||
 | 
					  in invalid memory reference exception. I'm wondering if this is because
 | 
				
			||||||
 | 
					  of some state or processing not being completed before the call. Dunno,
 | 
				
			||||||
 | 
					  but putting grSstIdle() in just before grGlideShutdown() does NOT fix the
 | 
				
			||||||
 | 
					  problem.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- 3dfx/demos/tunnel2 - does not run on my system even with SLI mode
 | 
				
			||||||
 | 
					  disabled. Hmmmm, maybe I need to disconnect my Voodoo2 cards?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*** Important Notes and Changing Default values
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- The optimizer settings have been manually reworked in both command line
 | 
				
			||||||
 | 
					  and DevStudio IDE files to hopefully prevent possible irrational code on
 | 
				
			||||||
 | 
					  the part of the code generator.  Formerly, it was configured for "/Ox",
 | 
				
			||||||
 | 
					  now it is configured for safer handling at a slight potential performance
 | 
				
			||||||
 | 
					  cost. This may not be required for Visual Studio 6 but I can't test that
 | 
				
			||||||
 | 
					  (yet).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- These files build with the code targeted for Pentium processors and
 | 
				
			||||||
 | 
					  8-byte structure padding.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- The IDE-built programs seem to be "happier" in that the command line
 | 
				
			||||||
 | 
					  build of the 3Dfx demo "fire" will grenade on exit (?). Otherwise pretty
 | 
				
			||||||
 | 
					  much everything may be built with either interface.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- The currently configured Mesa version is 3.1, and MesaDemos version is
 | 
				
			||||||
 | 
					  the same. To change this permanently you will need to edit NMAKE.MAK and
 | 
				
			||||||
 | 
					  change the lines that look like this (they start o/a line 116):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Currently, Mesa is at rev 3.1 ...
 | 
				
			||||||
 | 
					    #
 | 
				
			||||||
 | 
					    !IF "$(MESAVER)" == ""
 | 
				
			||||||
 | 
					    MESAVER=3.1
 | 
				
			||||||
 | 
					    !ENDIF
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # used in building all of the resource files for the Mesa DLLs
 | 
				
			||||||
 | 
					    #
 | 
				
			||||||
 | 
					    !IF "$(MESAFILEVER)" == ""
 | 
				
			||||||
 | 
					    MESAFILEVER=3,1,0,0
 | 
				
			||||||
 | 
					    !ENDIF
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Currently the build files are configured to be used from a Win32
 | 
				
			||||||
 | 
					  directory that is included inside the main Mesa-3.1 heirarchy.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- The build files are smart enough to find the files for the core lib, glu,
 | 
				
			||||||
 | 
					  glut, and the various demo programs if they are unpacked in the current
 | 
				
			||||||
 | 
					  Mesa-3.1 heirarchy, like this:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    \Mesa-3.1
 | 
				
			||||||
 | 
					    \Mesa-3.1\src
 | 
				
			||||||
 | 
					    \Mesa-3.1\src-glu
 | 
				
			||||||
 | 
					    \Mesa-3.1\src-glut
 | 
				
			||||||
 | 
					    \Mesa-3.1\Win32
 | 
				
			||||||
 | 
					    \Mesa-3.1\samples
 | 
				
			||||||
 | 
					    \Mesa-3.1\demos
 | 
				
			||||||
 | 
					    \Mesa-3.1\book
 | 
				
			||||||
 | 
					    \Mesa-3.1\3Dfx\demos
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ... should work.  This arose because my initial build tests for the
 | 
				
			||||||
 | 
					    demo files were done before MesaDemos 2.6 had been released.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- With the exception of the static link libraries generated by this file
 | 
				
			||||||
 | 
					  set (mesagl.lib, mesaglu.lib, mesaglut.lib) all DLLs and executables are
 | 
				
			||||||
 | 
					  built against the "Multithreaded DLL" runtime - this means that they
 | 
				
			||||||
 | 
					  require MSVCRT.DLL or MSVCRTD.DLL in the path to execute.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ** CHANGED 8/11/98 ***
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Note also that the demos are all built aginst the "OpenGL32, GLU32, and
 | 
				
			||||||
 | 
					  GLUT32" and as such they are fairly agnostic wrt: building against Mesa
 | 
				
			||||||
 | 
					  for CPU-rendering, Mesa-for-3Dfx, Mesa-for-S3, or System OpenGL.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  If you want to build them for use on your system and your display card
 | 
				
			||||||
 | 
					  provides full OpenGL acceleration (Permedia, Intel740, Intergraph,
 | 
				
			||||||
 | 
					  whatever) then you only need to build GLUT prior to building any of the
 | 
				
			||||||
 | 
					  demo programs. For convenience, the GLUT project is included in each of
 | 
				
			||||||
 | 
					  the demo projects Workspace files for the DevStudio IDE builds BUT it is
 | 
				
			||||||
 | 
					  not automatically built - you still need to build it first manually.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Note that if you have GLUT already installed on your system (gl/glut.h in
 | 
				
			||||||
 | 
					  yoru INCLUDE path, glut32.lib/glut32d.lib in your LIB path, and the DLL
 | 
				
			||||||
 | 
					  in your PATH) then you do NOT need to build GLUT prior to the test
 | 
				
			||||||
 | 
					  programs.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- The 3Dfx build of Mesa has primarily been tested with Quake 2 and it runs
 | 
				
			||||||
 | 
					  (mostly) fine on my PC (take that for what you want it)...
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ** CHANGED  8/11/98 ***
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  There is still something going on that causes Glide to crash on shutdown,
 | 
				
			||||||
 | 
					  when I run fxMesa under Windows NT, however it does not appear to occur
 | 
				
			||||||
 | 
					  under Windows 9x on either Voodoo1 or Voodoo2 cards. *sigh*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- I can not test the S3 build as I have no machines available with Virge
 | 
				
			||||||
 | 
					  based display cards.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- The multithreaded test code is *not* built as it requires pthreads and I
 | 
				
			||||||
 | 
					  have as of yet spent not time trying to get that running. The latest word
 | 
				
			||||||
 | 
					  that I saw WRT threading support on win32 was that they are intending to
 | 
				
			||||||
 | 
					  support it natively within Win32 - so I'm waiting it out until they get
 | 
				
			||||||
 | 
					  it done.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Similarly, the 'xdemos' are not currently built because I haven't gotten
 | 
				
			||||||
 | 
					  around to building the client libs for native win32 and getting it all
 | 
				
			||||||
 | 
					  setup for use.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*** Output Files
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					All final output files (DLL/LIB) are placed in the Mesa-3.1/lib directory,
 | 
				
			||||||
 | 
					with the exception of the fxMesaGL32 build which is placed in
 | 
				
			||||||
 | 
					Mesa-3./lib/FX and the executable images which are placed in their source
 | 
				
			||||||
 | 
					directories.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To be able to execute the various test programs, you will need to copy the
 | 
				
			||||||
 | 
					requisite DLL files into the same directory as the EXE files. Note that
 | 
				
			||||||
 | 
					most of the 3Dfx/demos/* programs WILL run with the non-FX build of Mesa -
 | 
				
			||||||
 | 
					just very slowly. The two programs which are hard-linked with the FX build
 | 
				
			||||||
 | 
					and will not run without it are "glbpaltx" which uses "gl3DfxSetPaletteEXT"
 | 
				
			||||||
 | 
					directly instead of via the extensions mechanism and "tunnel2" which uses
 | 
				
			||||||
 | 
					"fxMesaSelectCurrentBoard" API for selecting between multiple 3Dfx cards
 | 
				
			||||||
 | 
					installed in one system. Likewise, "paltex" directly uses the
 | 
				
			||||||
 | 
					"glColorTableEXT" extension and thus may not run on anything except
 | 
				
			||||||
 | 
					Mesa. If these applications used the proper extension mechanism they could
 | 
				
			||||||
 | 
					then be used on more than "just" fxMesa to good effect (for example, the
 | 
				
			||||||
 | 
					rest of the "3Dfx/demos" run just peachy on the Intel740 card in my test
 | 
				
			||||||
 | 
					machine) under WinNT.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Because I'm anal about my computer and it's organization, and I like to
 | 
				
			||||||
 | 
					prevent collision between builds, each of the subprojects has their own
 | 
				
			||||||
 | 
					intermediate file directory inside .\win32\release (for example, when
 | 
				
			||||||
 | 
					building mesagl.lib all of it's intermediate files will be found in
 | 
				
			||||||
 | 
					.\win32\release\lib.mesagl).  This makes it very easy to cleanup as you
 | 
				
			||||||
 | 
					only need to remove .\win32\release.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*** Okay, Enough, how do I build with this stuff already Ted!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Okay, no major calamity here. The basic way to use the project file is to
 | 
				
			||||||
 | 
					call it via NMAKE from the command line. The format is:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    nmake[.exe] /f nmake.mak [options] [target]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The most likely [options] values you will use may be any combination of the
 | 
				
			||||||
 | 
					following:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    DEBUG=1 or DEBUG=0
 | 
				
			||||||
 | 
					    USE_CRTDLL=1 or USE_CRTDLL=0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Note that all three of these options are OFF by default.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The [target] includes but is not limited to the following (for full details
 | 
				
			||||||
 | 
					please peruse the NMAKE.MAK and NMAKE.MIF files - but be warned that
 | 
				
			||||||
 | 
					NMAKE.MIF is rather large and sometimes hard to follow):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    --- convenience targets ---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    all                 - builds everything
 | 
				
			||||||
 | 
					    libfiles            - builds all linking library files
 | 
				
			||||||
 | 
					    progs               - builds all executable images
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    --- library files, static and dynamic ---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    mesagl              - static lib build of Mesa core.
 | 
				
			||||||
 | 
					    mesaglu             - static lib build of MesaGLU core.
 | 
				
			||||||
 | 
					    mesaglut            - static lib build of Mesa GLUT core.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    mesagl32            - dynamic lib build of Mesa core.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    mesaglu32           - dynamic lib build of GLU core, generates
 | 
				
			||||||
 | 
					                          GLU32.DLL and/or GLU32d.DLL.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    mesaglut32          - dynamic lib build of GLUT core, generates
 | 
				
			||||||
 | 
					                          GLUT32.DLL and/or GLUT32d.dll.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    --- hardware accelerated mesa builds ---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    fxmesagl32          - builds Mesa for use on top of the 3Dfx
 | 
				
			||||||
 | 
					                          Glide runtime libs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    s3mesagl32          - builds mesa for use on top of the S3
 | 
				
			||||||
 | 
					                          'S3Tk' runtime libs.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    --- executable images ---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    progs.book          - builds all programs in \book directory
 | 
				
			||||||
 | 
					    progs.demos         - builds all programs in \demos directory
 | 
				
			||||||
 | 
					    progs.samples       - builds all programs in \samples directory
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        These targets generate all of the programs in their respective
 | 
				
			||||||
 | 
					        directories and link the executables against OpenGL32.DLL,
 | 
				
			||||||
 | 
					        GLU32.DLL, and GLUT32.DLL (or their debug equivalents).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    progs.3dfx.demos    - builds all programs in \3dfx\demos directory
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        This target generates the 3Dfx/Demo executables, linking them
 | 
				
			||||||
 | 
					        against GLUT32.DLL, GLU32.DLL, OPENGL32.DLL and are thus NOT
 | 
				
			||||||
 | 
					        hard-bound to using Mesa per-se as you can simply NOT build the
 | 
				
			||||||
 | 
					        Mesa core and GLU libraries.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   --- Microsoft/SGI OpenGL-based GLUT and Demo program builds ----
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   *** IMPORTANT SAFETY TIP: If you're going to build these variants of
 | 
				
			||||||
 | 
					       GLUT then DO NOT build any other target libraries in this package
 | 
				
			||||||
 | 
					       first, OR from the command line run the "nmake /f nmake.mak clean"
 | 
				
			||||||
 | 
					       command first!  This is because generation of the GLUT for SGI
 | 
				
			||||||
 | 
					       OpenGL target libraries conflicts in naming with the static build
 | 
				
			||||||
 | 
					       libraries of Mesa and it's supporting GLUT build.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Currently, you may build GLUT as either GLUT32.DLL or GLUT.DLL for
 | 
				
			||||||
 | 
					   use running against either Microsoft or SGI OpenGL for Window,
 | 
				
			||||||
 | 
					   respectively.  This allows for the general use of GLUT 3.7 on Windows
 | 
				
			||||||
 | 
					   systems with fully compliant OpenGL.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   You can build the GLUT DLL files either with the command line by
 | 
				
			||||||
 | 
					   issuing either of these commands:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        nmake /f nmake.mak glut.sysgl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <or>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        nmake /f nmake.mak glut.sgigl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   OR by using the DevStudio MesaLib Worksapce build the GLUT_SGIGL or
 | 
				
			||||||
 | 
					   GLUT_SYSGL projects within the DevStudio IDE.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Unfortunately, the only way to build the test programs against this
 | 
				
			||||||
 | 
					   build of GLUT is via the command line, and I will NOT be making
 | 
				
			||||||
 | 
					   duplicate demo program projects for the IDE as it's just not worth it,
 | 
				
			||||||
 | 
					   sorry.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   To build the test programs against either MS or SGI OpenGL, you do so
 | 
				
			||||||
 | 
					   via either of these two commands:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        nmake /f nmake.mak progs.sysgl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <or>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        nmake /f nmake.mak progs.sgigl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   To use the GLUT-for-system-OpenGL in your own programs, you need to do
 | 
				
			||||||
 | 
					   three things by way of preparation, after building GLUT of course:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         1. Copy include\gl\glut.h to somewhere in your %INCLUDE% path, one
 | 
				
			||||||
 | 
					            likely candidate location would be in your
 | 
				
			||||||
 | 
					            "DevStudio\VC\INCLUDE\GL" directory.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         2. Copy the linking libraries to somewhere in your %LIB% path, one
 | 
				
			||||||
 | 
					            likely candidate location would be in your "DevStudio\VC\LIB"
 | 
				
			||||||
 | 
					            directory. The linking libraries you need to copy are as
 | 
				
			||||||
 | 
					            follows:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                .\Release\GLUT32.LIB
 | 
				
			||||||
 | 
					                .\Release\GLUT.LIB
 | 
				
			||||||
 | 
					                .\Debug\GLUT32.LIB
 | 
				
			||||||
 | 
					                .\Debug\GLUT.LIB
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        3. Copy the runtime libraries to somewhere in your %PATH%, one
 | 
				
			||||||
 | 
					           likely candidate location would be in WINDOWS\SYSTEM. the files
 | 
				
			||||||
 | 
					           that you should copy are as follows:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                .\Release\GLUT32.DLL
 | 
				
			||||||
 | 
					                .\Release\GLUT32.PDB
 | 
				
			||||||
 | 
					                .\Release\GLUT.DLL
 | 
				
			||||||
 | 
					                .\Release\GLUT.PDB
 | 
				
			||||||
 | 
					                .\Debug\GLUT32d.DLL
 | 
				
			||||||
 | 
					                .\Debug\GLUT32d.PDB
 | 
				
			||||||
 | 
					                .\Debug\GLUTd.DLL
 | 
				
			||||||
 | 
					                .\Debug\GLUTd.PDB
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Some examples are in order ...
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ... build all dynamic-link libs using MSVCRT.DLL for C runtime:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        nmake /f nmake.mak USE_CRTDLL=1 alldynamic
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ... To build all library variants and all test and demonstration
 | 
				
			||||||
 | 
					        programs with the default settings you do this:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        nmake /f nmake.mak all
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ... to build all static link libs and nothing else you do this:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        nmake /f nmake.mak allstatic
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ... to build all non-accelerated dynamic link libs you do this:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        nmake /f nmake.mak alldynamic
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ... to build all 3Dfx targeted dynamic link libs you do this:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        nmake /f nmake.mak allaccel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ... to build all S3 Virge targetd dynamic link libs you do this:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        nmake /f nmake.mak alls3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ... to build all libraries, static and dynamic, in all versions
 | 
				
			||||||
 | 
					        you do this:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        nmake /f nmake.mak libfiles
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ... to subsequently build all demo and test programs you do this:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        nmake /f nmake.mak progs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ... to cleanup all intermediate files you do this:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        nmake /f clean
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You get the picture. (I hope) ;^)  You may also specify specify
 | 
				
			||||||
 | 
					single targets in a convenient fashion. The rule is simple, any of the
 | 
				
			||||||
 | 
					above named lib files, static or dynamic, may be built by providing it's
 | 
				
			||||||
 | 
					name on the command line as the target. Examples:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ... to build only Mesa as OpenGL32.DLL ...
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        nmake /f nmake.mak opengl32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ... to build only Mesa on top of the 3Dfx Glide API ...
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        nmake /f nmake.mak fxMesaGL32
 | 
				
			||||||
 | 
					              <or>
 | 
				
			||||||
 | 
					        nmake /f nmake.mak fxMesaGL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ... to build only Mesa on top of the S3 Toolkit ...
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        nmake /f nmake.mak s3MesaGL32
 | 
				
			||||||
 | 
					              <or>
 | 
				
			||||||
 | 
					        nmake /f nmake.mak s3mesaGL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*** Revision history for ./win32 project files
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1/18/98 - initial cut submitted and included with core mesa
 | 
				
			||||||
 | 
					2/5/98  - fixed internal dependency within nmake.mif upon there being
 | 
				
			||||||
 | 
					          a $(DEVDIR) variable to make some temporary batch files
 | 
				
			||||||
 | 
					          dependant upon (thanks to Keven T. McDonnell for finding
 | 
				
			||||||
 | 
					          that there was this particular bug). I also updated the
 | 
				
			||||||
 | 
					          build files for 2.6beta6.
 | 
				
			||||||
 | 
					2/8/98  - added DevStudio workspace and project files for all lib
 | 
				
			||||||
 | 
					          files and some test programs. Updated readme.win32.
 | 
				
			||||||
 | 
					6/25/98 - initial revision for Mesa 3.0, does not include IDE files,
 | 
				
			||||||
 | 
					          not everything is running. *sigh*
 | 
				
			||||||
 | 
					7/20/98 - Mesa 3.0beta6 rev of all build files, all libs built and
 | 
				
			||||||
 | 
					          minimally tested, all demo programs built and minimally
 | 
				
			||||||
 | 
					          tested to within limits of my PC. ;^) Eveything looks
 | 
				
			||||||
 | 
					          MUCH better now ...
 | 
				
			||||||
 | 
					7/30/98 - Minor updates/edits based upon feedback from
 | 
				
			||||||
 | 
					          Eero Pajarre <epajarre@koti.tpo.fi>. These updates include a fix
 | 
				
			||||||
 | 
					          to the Mesa-on-3Dfx build such that Quake-II now runs almost
 | 
				
			||||||
 | 
					          properly on my system. It runs, just *very* slowly and with *no*
 | 
				
			||||||
 | 
					          textures. Hmmm. Doesn't make any difference whether Quake is set
 | 
				
			||||||
 | 
					          to use 8-bit textures or not.
 | 
				
			||||||
 | 
					8/13/98 - Lots of build cleanups, minor bug fixes in fxwgl.c, and
 | 
				
			||||||
 | 
					          compatability fix in fxapi.c for in-window rendering using 3Dfx
 | 
				
			||||||
 | 
					          hardware.
 | 
				
			||||||
 | 
					8/26/98 - Final revisions for Mesa 3 release checked
 | 
				
			||||||
 | 
					9/22/98 - Fixed static builds for all but fxMesaGL32 and s3MesaGL32 targets
 | 
				
			||||||
 | 
					9/29/98 - Reorganized FAQ information and added Added faq entry about Glide
 | 
				
			||||||
 | 
					          bug under NT (crash on exit) and a workaround.
 | 
				
			||||||
 | 
					11/21/98 - Updated files for Mesa 3.1 beta 1
 | 
				
			||||||
 | 
					           Updated fxMesa window-hack code
 | 
				
			||||||
 | 
					           Updated fxMesa resolution support to handle 1600x1200 & 1280x1024
 | 
				
			||||||
 | 
					7/9/99  - Rev'd for Mesa 3.1 beta 2
 | 
				
			||||||
@@ -1,146 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
                        WindML Driver for Mesa 4.0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Requirements
 | 
					 | 
				
			||||||
------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Tornado 2 + WindML, Cumulative Patchs are recommended. 
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
I suppose you have a valid WindML installation. Double buffer hardware
 | 
					 | 
				
			||||||
gives better performance than double buffer software so if you can
 | 
					 | 
				
			||||||
compile your WindML driver with this option, just do it. I/O
 | 
					 | 
				
			||||||
redirection is adviced in target server.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Tested on
 | 
					 | 
				
			||||||
---------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
During the development, my main target was a CoolMonster:
 | 
					 | 
				
			||||||
- Video card: CT69000
 | 
					 | 
				
			||||||
- CPU: PENTIUM 266MHz
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
and my host a Windows NT + Tornado 2.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Installation
 | 
					 | 
				
			||||||
------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
1. Mesa sources must be in root directory (C:\)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
2. Add the following line to your torVars.bat:
 | 
					 | 
				
			||||||
set MESA_BASE=C:\Mesa
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OR copy the new torVars.bat in your bin path:
 | 
					 | 
				
			||||||
c:/Mesa/src/ugl/tornado/torVars.sample -> 
 | 
					 | 
				
			||||||
/mnt/nt/Tornado/host/x86-win32/bin/torVars (for example)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
3. In a command prompt:
 | 
					 | 
				
			||||||
$ torVars
 | 
					 | 
				
			||||||
$ cd c:\Mesa
 | 
					 | 
				
			||||||
$ make -f Makefile.ugl CPU=PENTIUM
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Take a long while...
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
5. Include all the files from ugldemos folder to build some downloadable
 | 
					 | 
				
			||||||
   application modules
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
4. Download UGL/Mesa object files on target
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
For example via the WindShell:
 | 
					 | 
				
			||||||
ld < c:\Tornado\target\lib\objMesaGL.o
 | 
					 | 
				
			||||||
ld < c:\Tornado\target\lib\objMesaUGL.o
 | 
					 | 
				
			||||||
ld < c:\Tornado\target\lib\objMesaGLU.o
 | 
					 | 
				
			||||||
ld < c:\Tornado\target\lib\objGLUTshapes.o
 | 
					 | 
				
			||||||
ld < c:\Tornado\target\lib\objMesaOS.o
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
You can put the previous lines in a file and use:
 | 
					 | 
				
			||||||
< filename
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
6. Download the application modules.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
7. In WindShell, run:
 | 
					 | 
				
			||||||
-> uglalldemos
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
During the show some messages will appear, it provides some useful
 | 
					 | 
				
			||||||
information on key management.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Coding
 | 
					 | 
				
			||||||
------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Sample Usage:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
In addition to the usual ugl calls to initialize UGL, (may be find an
 | 
					 | 
				
			||||||
input driver), you must do the following to use the UGL/Mesa interface:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
1. Call uglMesaCreateContext() to create a UGL/Mesa rendering context,
 | 
					 | 
				
			||||||
   given the display format.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
2. Call uglMesaMakeCurrent() to bind the UGL/Mesa buffers to an
 | 
					 | 
				
			||||||
   UGL/Mesa Context and to make the context the current one.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
3. Make gl* calls to render your graphics.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
4. Use uglMesaSwapBuffers() when double buffering to swap front/back buffers.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
5. Before the UGL is destroyed, call MesaDestroyContext().
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
6. Before exiting, call if required uglEventQDestroy and then
 | 
					 | 
				
			||||||
   uglDeinitialize();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Limitations
 | 
					 | 
				
			||||||
-----------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
I found the following limitations in my driver :
 | 
					 | 
				
			||||||
 - Color Indexed management is only in 8 bits
 | 
					 | 
				
			||||||
 - It's possible to mix UGL/OpenGL application with a software
 | 
					 | 
				
			||||||
   double buffer
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Modifications
 | 
					 | 
				
			||||||
------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New files in Mesa:
 | 
					 | 
				
			||||||
- Makefile.ugl
 | 
					 | 
				
			||||||
- rules.windmlmesa
 | 
					 | 
				
			||||||
- docs/README.UGL
 | 
					 | 
				
			||||||
- include/GL/uglmesa.h
 | 
					 | 
				
			||||||
- si-glu/Makefile.ugl
 | 
					 | 
				
			||||||
- src/Makefile.ugl
 | 
					 | 
				
			||||||
- src/ugl/torGLUTShapesInit.c
 | 
					 | 
				
			||||||
- src/ugl/torMesaUGLInit.c
 | 
					 | 
				
			||||||
- src/ugl/ugl_api.c
 | 
					 | 
				
			||||||
- src/ugl/ugl_dd.c
 | 
					 | 
				
			||||||
- src/ugl/ugl_glutshapes.c
 | 
					 | 
				
			||||||
- src/ugl/ugl_line.c
 | 
					 | 
				
			||||||
- src/ugl/ugl_span.c
 | 
					 | 
				
			||||||
- src/ugl/ugl_tri.c
 | 
					 | 
				
			||||||
- src/ugl/uglmesaP.h
 | 
					 | 
				
			||||||
- ugldemos/*
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Modified files in Tornado 2.0:
 | 
					 | 
				
			||||||
- c:\Tornado\host\x86-win32\bin\torVars.bat
 | 
					 | 
				
			||||||
rem Command line build environments
 | 
					 | 
				
			||||||
set WIND_HOST_TYPE=x86-win32
 | 
					 | 
				
			||||||
set WIND_BASE=C:\Tornado
 | 
					 | 
				
			||||||
set MESA_BASE=C:\Mesa
 | 
					 | 
				
			||||||
set PATH=%WIND_BASE%\host\%WIND_HOST_TYPE%\bin;%PATH%
 | 
					 | 
				
			||||||
- c:\Tornado\target\config\comps\VxWorks\01uglmesa.cdf
 | 
					 | 
				
			||||||
- c:\Tornado\target\h\GL\*
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Todo
 | 
					 | 
				
			||||||
----
 | 
					 | 
				
			||||||
- GCC 2.96, ASM compilation
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Thanks to:
 | 
					 | 
				
			||||||
----------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Precision Insight team for their great job around Mesa, XFree, and DRI.
 | 
					 | 
				
			||||||
Wind River Systems to take me as an intern.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Stephane Raimbault
 | 
					 | 
				
			||||||
<stephane.raimbault@windriver.com>
 | 
					 | 
				
			||||||
<stephane.raimbault@deesse.univ-lemans.fr>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
July 24, 2001
 | 
					 | 
				
			||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                          Mesa Unix/X11 Information
 | 
					                         Mesa 3.1 Unix/X11 Information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -18,15 +18,21 @@ There are two ways to compile Mesa on Unix/X11 systems:
 | 
				
			|||||||
    the top-level Makefile and Make-config files.  There are instructions in
 | 
					    the top-level Makefile and Make-config files.  There are instructions in
 | 
				
			||||||
    each file.
 | 
					    each file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    When finished, the Mesa libraries will be in the Mesa-x.y/lib/ directory.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
2. The new way:
 | 
					2. The new way:
 | 
				
			||||||
    Type './configure' and then 'make'.  This uses GNU autoconfig.
 | 
					    Type './configure' and then 'make'.  This uses GNU autoconfig.
 | 
				
			||||||
    Run 'make check' to build the demos.
 | 
					 | 
				
			||||||
    See docs/INSTALL for more details.
 | 
					    See docs/INSTALL for more details.
 | 
				
			||||||
    When finished, the Mesa libraries will be in the Mesa-x.y/src/.libs/,
 | 
					
 | 
				
			||||||
    Mesa-x.y/si-glu/.libs, etc directories.
 | 
					
 | 
				
			||||||
 | 
					The top-level makefile will execute the makefiles in a number of sub-
 | 
				
			||||||
 | 
					directories.  When finished, the Mesa libraries will be in the Mesa-3.1/lib/
 | 
				
			||||||
 | 
					directory.  A few GLUT demos in the demos/ directory should be ready to run.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If you also downloaded and unpacked the demos there should be executables
 | 
				
			||||||
 | 
					in the "xdemos/", "samples/", and "book/" directories for you to try out.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If you have compilation problems you should try to fix them and return the
 | 
				
			||||||
 | 
					patches to the author.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Notes on assembly language optimizations:
 | 
					Notes on assembly language optimizations:
 | 
				
			||||||
@@ -135,7 +141,7 @@ Xt/Motif Widgets:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Togl:
 | 
					Togl:
 | 
				
			||||||
   Togl is an OpenGL/Mesa widget for Tcl/Tk.
 | 
					   Togl is an OpenGL/Mesa widget for Tcl/Tk.
 | 
				
			||||||
   See http://togl.sourceforge.net for more information.
 | 
					   See http://www.ssec.wisc.edu/~brianp/Togl.html for more information.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -250,9 +256,14 @@ HPCR glClear(GL_COLOR_BUFFER_BIT) dithering
 | 
				
			|||||||
   to HP systems with the HPCR (Color Recovery) system.
 | 
					   to HP systems with the HPCR (Color Recovery) system.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Extensions
 | 
					Extensions:
 | 
				
			||||||
==========
 | 
					   The following OpenGL GLX extensions are currently implemented:
 | 
				
			||||||
   There are three Mesa-specific GLX extensions at this time.
 | 
					
 | 
				
			||||||
 | 
					      GLX_EXT_visual_info - GLX visual and transparent pixel extension
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   For detailed information about the extensions see www.opengl.org
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   There are four Mesa-specific GL/GLX extensions at this time.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   GLX_MESA_pixmap_colormap 
 | 
					   GLX_MESA_pixmap_colormap 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -311,4 +322,4 @@ Summary of X-related environment variables:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
----------------------------------------------------------------------
 | 
					----------------------------------------------------------------------
 | 
				
			||||||
$Id: README.X11,v 3.10 2003/03/08 17:38:57 brianp Exp $
 | 
					$Id: README.X11,v 3.3.2.3 2000/01/25 17:18:46 brianp Exp $
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -143,4 +143,4 @@ code).  Anyone want to help?
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
----------------------------------------------------------------------
 | 
					----------------------------------------------------------------------
 | 
				
			||||||
$Id: RELNOTES-3.1,v 1.2 2000/04/07 17:08:06 brianp Exp $
 | 
					$Id: RELNOTES-3.1,v 1.1.2.1 2000/02/22 17:56:56 brianp Exp $
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,12 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
                         Mesa 3.2 release notes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                             PLEASE READ!!!!
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa 3.2 is a stabilization of the Mesa 3.1 release.  No new features
 | 
					 | 
				
			||||||
have been added.  For a list of bug fixes please read the VERSIONS file.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
----------------------------------------------------------------------
 | 
					 | 
				
			||||||
$Id: RELNOTES-3.2,v 1.2 2000/04/07 17:08:06 brianp Exp $
 | 
					 | 
				
			||||||
@@ -1,32 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
                         Mesa 3.2.1 release notes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                             PLEASE READ!!!!
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The Mesa 3.2.1 release mainly just fixes bugs since the 3.2 release.
 | 
					 | 
				
			||||||
See the VERSIONS file for the exact list.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLU Polygon Tessellator
 | 
					 | 
				
			||||||
-----------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The GLU tessellator has been reverted back to the version included
 | 
					 | 
				
			||||||
with Mesa 3.0 since it's more stable.  The Mesa 3.1/3.2 tessellator
 | 
					 | 
				
			||||||
implemented the GLU 1.3 specification but suffered from a number of
 | 
					 | 
				
			||||||
bugs.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa implements GLU 1.1.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Ideally, people should use the GLU 1.3 library included in SGI's
 | 
					 | 
				
			||||||
OpenGL Sample Implementation (SI) available from 
 | 
					 | 
				
			||||||
http://oss.sgi.com/projects/ogl-sample/
 | 
					 | 
				
			||||||
People are working to make easy-to-install Linux RPMs of the
 | 
					 | 
				
			||||||
GLU library.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
----------------------------------------------------------------------
 | 
					 | 
				
			||||||
$Id: RELNOTES-3.2.1,v 1.2 2000/07/21 16:32:33 brianp Exp $
 | 
					 | 
				
			||||||
@@ -1,271 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
                         Mesa 3.3 release notes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                             July 21, 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.2.1) designate stable releases.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa 3.3 has a undergone many internal changes since version 3.2
 | 
					 | 
				
			||||||
and features a lot of new extensions.  3.3 is expected to be pretty
 | 
					 | 
				
			||||||
stable, but perhaps not as stable as 3.2 which has been used by
 | 
					 | 
				
			||||||
thousands of users over the past months.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Everyone is encouraged to try Mesa 3.3.  Bugs should be reported to
 | 
					 | 
				
			||||||
the Mesa bug database on www.sourceforge.net.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Header file / GLenum changes
 | 
					 | 
				
			||||||
----------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The gl.h and glu.h headers now use #defines to define all GL_* tokens
 | 
					 | 
				
			||||||
instead of C-language enums.  This change improves Mesa/OpenGL
 | 
					 | 
				
			||||||
interoperability.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New API dispatch code
 | 
					 | 
				
			||||||
---------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The core Mesa gl* functions are now implemented with a new dispatch
 | 
					 | 
				
			||||||
(jump table) which will allow simultaneous direct/indirect rendering.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The code is found in the glapi*.[ch] files.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Of interest:  the actual "glFooBar" functions are generated with
 | 
					 | 
				
			||||||
templatized code defined in glapitemp.h and included by glapi.c
 | 
					 | 
				
			||||||
The glapitemp.h template should be reusable for all sorts of OpenGL
 | 
					 | 
				
			||||||
projects.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The new dispatch code has also optimized with x86 assembly code.
 | 
					 | 
				
			||||||
This optimization eliminates copying the function arguments during
 | 
					 | 
				
			||||||
dispatch.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New thread support
 | 
					 | 
				
			||||||
------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Thread support in Mesa has been rewritten.  The glthread.[ch] files
 | 
					 | 
				
			||||||
replace mthreads.[ch].  Thread safety is always enabled (on platforms
 | 
					 | 
				
			||||||
which support threads, that is).  There is virtually no performance
 | 
					 | 
				
			||||||
penalty for typical single-thread applications.  See the glapi.c
 | 
					 | 
				
			||||||
file for details.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The Xlib driver (XMesa) is now thread-safe as well.  Be sure to
 | 
					 | 
				
			||||||
call XInitThreads() in your app first.  See the xdemos/glthreads.c
 | 
					 | 
				
			||||||
demo for an example.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Make configuration changes
 | 
					 | 
				
			||||||
--------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
If you use the old-style (non GNU automake) method to build Mesa note
 | 
					 | 
				
			||||||
that several of the configuration names have changed:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   Old name        New name
 | 
					 | 
				
			||||||
   -------------   ----------------
 | 
					 | 
				
			||||||
   linux-elf       linux
 | 
					 | 
				
			||||||
   linux           linux-static
 | 
					 | 
				
			||||||
   linux-386-elf   linux-386
 | 
					 | 
				
			||||||
   linux-386       linux-386-static
 | 
					 | 
				
			||||||
   etc.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New extensions
 | 
					 | 
				
			||||||
--------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_ARB_transpose_matrix
 | 
					 | 
				
			||||||
	Adds glLoadTransposeMatrixARB() and glMultTransposeMatrixARB()
 | 
					 | 
				
			||||||
        functions.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_ARB_texture_cube_map
 | 
					 | 
				
			||||||
	For cube-based reflection mapping.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_EXT_texture_add_env
 | 
					 | 
				
			||||||
	Adds GL_ADD texture environment mode.
 | 
					 | 
				
			||||||
	See http://www.berkelium.com/OpenGL/EXT/texture_env_add.txt
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_EXT_texture_lod_bias
 | 
					 | 
				
			||||||
	Allows mipmapped texture blurring and sharpening.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLX_EXT_visual_rating extension
 | 
					 | 
				
			||||||
	This extension has no effect in stand-alone Mesa (used for DRI).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_HP_occlusion_test
 | 
					 | 
				
			||||||
	Used for bounding box occlusion testing (see demos/occlude.c).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_SGIX_pixel_texture / GL_SGIS_pixel_texture
 | 
					 | 
				
			||||||
	Lets glDraw/CopyPixels draw a texture coordinate image.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_SGI_color_matrix
 | 
					 | 
				
			||||||
	Adds a color matrix and another set of scale and bias parameters
 | 
					 | 
				
			||||||
	to the glDraw/CopyPixels paths.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_SGI_color_table
 | 
					 | 
				
			||||||
	Adds additional color tables to the glDraw/Read/CopyPixels paths.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_EXT_histogram
 | 
					 | 
				
			||||||
	Compute histograms for glDraw/Read/CopyPixels.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_EXT_blend_func_separate
 | 
					 | 
				
			||||||
	This is the same as GL_INGR_blend_func_separate.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_ARB_texture_cube_mapping
 | 
					 | 
				
			||||||
	6-face cube mapping, nicer than sphere mapping
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_EXT_texture_env_combine
 | 
					 | 
				
			||||||
	For advanced texture environment effects.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Documentation for all these functions can be found at
 | 
					 | 
				
			||||||
http://oss.sgi.com/projects/ogl-sample/registry/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLX_SGI_make_current_read functionality
 | 
					 | 
				
			||||||
---------------------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The functionality of this extension is needed for GLX 1.3 (and required
 | 
					 | 
				
			||||||
for the Linux/OpenGL standards base).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Implementing this function required a **DEVICE DRIVER CHANGE**.
 | 
					 | 
				
			||||||
The old SetBuffer() function has been replaced by SetReadBuffer() and
 | 
					 | 
				
			||||||
SetDrawBuffer().  All device drivers will have to be updated because
 | 
					 | 
				
			||||||
of this change.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The new function, glXMakeContextCurrent(), in GLX 1.3 now works in Mesa.
 | 
					 | 
				
			||||||
The xdemos/wincopy.c program demonstrates it.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Image-related code changes
 | 
					 | 
				
			||||||
--------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The imaging path code used by glDrawPixels, glTexImage[123]D,
 | 
					 | 
				
			||||||
glTexSubImage[123], etc has been rewritten.  It's now faster,
 | 
					 | 
				
			||||||
uses less memory and has several bug fixes.  This work was
 | 
					 | 
				
			||||||
actually started in Mesa 3.1 with the glTexImage paths but has now
 | 
					 | 
				
			||||||
been carried over to glDrawPixels as well.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Device driver interface changes
 | 
					 | 
				
			||||||
-------------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Added new functions for hardware stencil buffer support:
 | 
					 | 
				
			||||||
   WriteStencilSpan
 | 
					 | 
				
			||||||
   ReadStencilSpan
 | 
					 | 
				
			||||||
   WriteStencilPixels
 | 
					 | 
				
			||||||
   ReadStencilPixels
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Removed old depth buffer functions:
 | 
					 | 
				
			||||||
   AllocDepthBuffer
 | 
					 | 
				
			||||||
   DepthTestSpan
 | 
					 | 
				
			||||||
   DepthTestPixels
 | 
					 | 
				
			||||||
   ReadDepthSpanFloat
 | 
					 | 
				
			||||||
   ReadDepthSpanInt
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Added new depth buffer functions:
 | 
					 | 
				
			||||||
   WriteDepthSpan
 | 
					 | 
				
			||||||
   ReadDepthSpan
 | 
					 | 
				
			||||||
   WriteDepthPixels
 | 
					 | 
				
			||||||
   ReadDepthPixels
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   These functions always read/write 32-bit GLuints.  This will allow
 | 
					 | 
				
			||||||
   drivers to have anywhere from 0 to 32-bit Z buffers without
 | 
					 | 
				
			||||||
   recompiling for 16 vs 32 bits as was previously needed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New texture image functions
 | 
					 | 
				
			||||||
   The entire interface for texture image specification has been updated.
 | 
					 | 
				
			||||||
   With the new functions, it's optional for Mesa to keep an internal copy
 | 
					 | 
				
			||||||
   of all textures.  Texture download should be a lot faster when the extra
 | 
					 | 
				
			||||||
   copy isn't made.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Misc changes
 | 
					 | 
				
			||||||
   TexEnv now takes a target argument
 | 
					 | 
				
			||||||
   Removed UseGlobalTexturePalette (use Enable function instead)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Also added
 | 
					 | 
				
			||||||
   ReadPixels
 | 
					 | 
				
			||||||
   CopyPixels
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The SetBufffer function has been replaced by SetDrawBuffer and
 | 
					 | 
				
			||||||
SetReadBuffer functions.  This lets core Mesa independently
 | 
					 | 
				
			||||||
specify which buffer is to be used for reading and which for
 | 
					 | 
				
			||||||
drawing.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The Clear function's mask parameter has changed.  Instead of
 | 
					 | 
				
			||||||
mask being the flags specified by the user to glClear, the
 | 
					 | 
				
			||||||
mask is now a bitmask of the DD_*_BIT flags in dd.h.  Now
 | 
					 | 
				
			||||||
multiple color buffers can be specified for clearing (ala
 | 
					 | 
				
			||||||
glDrawBuffers).  The driver's Clear function must also
 | 
					 | 
				
			||||||
check the glColorMask glIndexMask, and glStencilMask settings
 | 
					 | 
				
			||||||
and do the right thing.  See the X/Mesa, OS/Mesa, or FX/Mesa
 | 
					 | 
				
			||||||
drivers for examples.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The depth buffer changes shouldn't be hard to make for existing
 | 
					 | 
				
			||||||
drivers.  In fact, it should simply the code.  Be careful with
 | 
					 | 
				
			||||||
the depthBits value passed to gl_create_context().  1 is a bad
 | 
					 | 
				
			||||||
value!  It should normally be 0, 16, 24, or 32.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
gl_create_framebuffer() takes new arguments which explicitly tell
 | 
					 | 
				
			||||||
core Mesa which ancillary buffers (depth, stencil, accum, alpha)
 | 
					 | 
				
			||||||
should be implemented in software.  Mesa hardware drivers should
 | 
					 | 
				
			||||||
carefully set these flags depending on which buffers are in the
 | 
					 | 
				
			||||||
graphics card.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Internal constants
 | 
					 | 
				
			||||||
------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Point and line size range and granularity limits are now stored
 | 
					 | 
				
			||||||
in the gl_constants struct, which is the Const member of GLcontext.
 | 
					 | 
				
			||||||
The limits are initialized from values in config.h but may be
 | 
					 | 
				
			||||||
overridden by device drivers to reflect the limits of that driver's
 | 
					 | 
				
			||||||
hardware.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Also added constants for NumAuxBuffers and SubPixelBits.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OpenGL Conformance
 | 
					 | 
				
			||||||
------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa now passes all the OpenGL 1.1 conformance tests, except for
 | 
					 | 
				
			||||||
antialiased lines.  AA lines fail on some, but not all, the tests.
 | 
					 | 
				
			||||||
In order to fix the remaining failures, a new AA line algorithm will
 | 
					 | 
				
			||||||
be needed (which computes coverage values for end-point fragments).
 | 
					 | 
				
			||||||
This will be done for Mesa 3.5/3.6.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OpenGL 1.2 GL_ARB_imaging subset
 | 
					 | 
				
			||||||
--------------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa 3.3 implements all the features of GL_ARB_imaging except for
 | 
					 | 
				
			||||||
image convolution.  This will (hopefully) be done for Mesa 3.5/3.6.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
----------------------------------------------------------------------
 | 
					 | 
				
			||||||
$Id: RELNOTES-3.3,v 1.8 2000/07/21 16:26:41 brianp Exp $
 | 
					 | 
				
			||||||
@@ -1,22 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
                         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.2 2002/03/23 02:37:17 brianp Exp $
 | 
					 | 
				
			||||||
@@ -1,22 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
                         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.2 2001/05/23 14:45:01 brianp Exp $
 | 
					 | 
				
			||||||
@@ -1,22 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
                         Mesa 3.4.2 release notes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                               May 17, 2001
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                              PLEASE READ!!!!
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Introduction
 | 
					 | 
				
			||||||
------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa uses an even/odd version number scheme like the Linux kernel.
 | 
					 | 
				
			||||||
Odd numbered versions (such as 3.3) designate new developmental releases.
 | 
					 | 
				
			||||||
Even numbered versions (such as 3.4) designate stable releases.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa 3.4.2 is a maintenance release that simply fixes bugs found since
 | 
					 | 
				
			||||||
the Mesa 3.4.1 release.  For details, see the VERSIONS file.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
----------------------------------------------------------------------
 | 
					 | 
				
			||||||
$Id: RELNOTES-3.4.2,v 1.2 2001/05/23 14:45:01 brianp Exp $
 | 
					 | 
				
			||||||
@@ -1,228 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
                         Mesa 3.5 release notes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                             June 21, 2001
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                             PLEASE READ!!!!
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Introduction
 | 
					 | 
				
			||||||
------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa uses an even/odd version number scheme like the Linux kernel.
 | 
					 | 
				
			||||||
Odd numbered versions (such as 3.5) designate new developmental releases.
 | 
					 | 
				
			||||||
Even numbered versions (such as 3.4) designate stable releases.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The biggest change in Mesa 3.5 is a complete overhaul of the source
 | 
					 | 
				
			||||||
code in order to make it more modular.  This was driven by the DRI
 | 
					 | 
				
			||||||
hardware drivers.  It simplifies the DRI drivers and opens the door
 | 
					 | 
				
			||||||
to hardware transform/clip/lighting (TCL).  Keith Whitwell can take
 | 
					 | 
				
			||||||
the credit for that.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Driver Support
 | 
					 | 
				
			||||||
--------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The device driver interface in Mesa 3.5 has changed a lot since Mesa 3.4
 | 
					 | 
				
			||||||
Not all of the older Mesa drivers have been updated.  Here's the status:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Driver			Status
 | 
					 | 
				
			||||||
----------------------	-----------
 | 
					 | 
				
			||||||
XMesa (Xlib)		updated
 | 
					 | 
				
			||||||
OSMesa (off-screen)	updated
 | 
					 | 
				
			||||||
FX (3dfx Voodoo1/2)	updated
 | 
					 | 
				
			||||||
SVGA			updated
 | 
					 | 
				
			||||||
GGI			not updated
 | 
					 | 
				
			||||||
Windows/Win32		not updated
 | 
					 | 
				
			||||||
DOS/DJGPP		not updated
 | 
					 | 
				
			||||||
BeOS			not updated
 | 
					 | 
				
			||||||
Allegro			not updated
 | 
					 | 
				
			||||||
D3D			not updated
 | 
					 | 
				
			||||||
DOS			not updated
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
We're looking for volunteers to update the remaining drivers.  Please
 | 
					 | 
				
			||||||
post to the Mesa3d-dev mailing list if you can help.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLU 1.3
 | 
					 | 
				
			||||||
-------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa 3.5 includes the SGI Sample Implementation (SI) GLU library.
 | 
					 | 
				
			||||||
This version of GLU supports the GLU 1.3 specification.  The old
 | 
					 | 
				
			||||||
Mesa GLU library implemented the 1.1 specification.  The SI GLU
 | 
					 | 
				
			||||||
library should work much better.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
You'll need a C++ compiler to compile the SI GLU library.  This may
 | 
					 | 
				
			||||||
be a problem on some systems.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Extensions
 | 
					 | 
				
			||||||
--------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_EXT_convolution
 | 
					 | 
				
			||||||
	Adds image convolution to glRead/Copy/DrawPixels/TexImage.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_ARB_imaging
 | 
					 | 
				
			||||||
	This is the optional imaging subset of OpenGL 1.2.
 | 
					 | 
				
			||||||
	It's the GL_EXT_convolution, GL_HP_convolution_border_modes,
 | 
					 | 
				
			||||||
	GL_EXT_histogram, GL_EXT_color_table, GL_EXT_color_subtable
 | 
					 | 
				
			||||||
	GL_EXT_blend_color, GL_EXT_blend_minmax, GL_EXT_blend_subtract
 | 
					 | 
				
			||||||
	and GL_SGI_color_matrix extensions all rolled together.
 | 
					 | 
				
			||||||
	This is supported in all software renderers but not in all
 | 
					 | 
				
			||||||
	hardware drivers (3dfx for example).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_ARB_texture_compression
 | 
					 | 
				
			||||||
	This is supported in Mesa but only used by the 3dfx DRI drivers
 | 
					 | 
				
			||||||
	for Voodoo4 and later.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_ARB_texture_env_add
 | 
					 | 
				
			||||||
	This is identical to GL_EXT_texture_env_add.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_NV_blend_square
 | 
					 | 
				
			||||||
	Adds extra blend source and dest factors which allow squaring
 | 
					 | 
				
			||||||
	of color values.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_EXT_fog_coord
 | 
					 | 
				
			||||||
	Allows specification of a per-vertex fog coordinate instead of
 | 
					 | 
				
			||||||
	having fog always computed from the eye distance.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_EXT_secondary_color
 | 
					 | 
				
			||||||
	Allows specifying the secondary (specular) color for each vertex
 | 
					 | 
				
			||||||
	instead of getting it only from lighting in GL_SEPARATE_SPECULAR_COLOR
 | 
					 | 
				
			||||||
	mode.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_ARB_texture_env_combine
 | 
					 | 
				
			||||||
	Basically the same as GL_EXT_texture_env_combine
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_ARB_texture_env_add extension
 | 
					 | 
				
			||||||
	Texture addition mode.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_ARB_texture_env_dot3 extension
 | 
					 | 
				
			||||||
	Dot product texture environment.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_ARB_texture_border_clamp
 | 
					 | 
				
			||||||
	Adds GL_CLAMP_TO_BORDER_ARB texture wrap mode
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_SGIX_depth_texture, GL_SGIX_shadow and GL_SGIX_shadow_ambient
 | 
					 | 
				
			||||||
	Implements a shadow casting algorithm based on depth map textures
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_SGIS_generate_mipmap
 | 
					 | 
				
			||||||
	Automatically generate lower mipmap images whenever the base mipmap
 | 
					 | 
				
			||||||
	image is changed with glTexImage, glCopyTexImage, etc.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
libOSMesa.so
 | 
					 | 
				
			||||||
------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
libOSMesa.so is a new library which contains the OSMesa interface for
 | 
					 | 
				
			||||||
off-screen rendering.  Apps which need the OSMesa interface should link
 | 
					 | 
				
			||||||
with both -lOSMesa and -lGL.  This change was made so that stand-alone
 | 
					 | 
				
			||||||
Mesa works the same way as XFree86/DRI's libGL.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Device Driver Changes / Core Mesa Changes
 | 
					 | 
				
			||||||
-----------------------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The ctx->Driver.LogicOp() function has been removed.  It used to
 | 
					 | 
				
			||||||
be called during state update in order to determine if the driver
 | 
					 | 
				
			||||||
could do glLogicOp() operations, and if not, set the SWLogicOpEnabled
 | 
					 | 
				
			||||||
flag.  Drivers should instead examine the LogicOp state themselves
 | 
					 | 
				
			||||||
and choose specialized point, line, and triangle functions appropriately,
 | 
					 | 
				
			||||||
or fall back to software rendering.  The Xlib driver was the only driver
 | 
					 | 
				
			||||||
to use this function.  And since the Xlib driver no longer draws
 | 
					 | 
				
			||||||
points, lines or triangles using Xlib, the LogicOp function isn't needed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The ctx->Driver.Dither() function has been removed.  Drivers should
 | 
					 | 
				
			||||||
detect dither enable/disable via ctx->Driver.Enable() instead.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The ctx->Driver.IndexMask() and ctx->Driver.ColorMask() functions
 | 
					 | 
				
			||||||
are now just called from glIndexMask and glColorMask like the other
 | 
					 | 
				
			||||||
GL state-changing functions.  They are no longer called from inside
 | 
					 | 
				
			||||||
gl_update_state().  Also, they now return void.  The change was made
 | 
					 | 
				
			||||||
mostly for sake of uniformity.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The NEW_DRVSTATE[0123] flags have been removed.  They weren't being used
 | 
					 | 
				
			||||||
and are obsolete w.r.t. the way state updates are done in DRI drivers.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Removed obsolete gl_create_visual() and gl_destroy_visual().
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Renamed functions (new namespace):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
old				new
 | 
					 | 
				
			||||||
gl_create_framebuffer		_mesa_create_framebuffer
 | 
					 | 
				
			||||||
gl_destroy_framebuffer		_mesa_destroy_framebuffer
 | 
					 | 
				
			||||||
gl_create_context		_mesa_create_context
 | 
					 | 
				
			||||||
gl_destroy_context		_mesa_destroy_context
 | 
					 | 
				
			||||||
gl_context_initialize		_mesa_context_initialize
 | 
					 | 
				
			||||||
gl_copy_context			_mesa_copy_context
 | 
					 | 
				
			||||||
gl_make_current			_mesa_make_current
 | 
					 | 
				
			||||||
gl_make_current2		_mesa_make_current2
 | 
					 | 
				
			||||||
gl_get_current_context		_mesa_get_current_context
 | 
					 | 
				
			||||||
gl_flush_vb			_mesa_flush_vb
 | 
					 | 
				
			||||||
gl_warning			_mesa_warning
 | 
					 | 
				
			||||||
gl_compile_error		_mesa_compile_error
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
All the drivers have been updated, but not all of them have been
 | 
					 | 
				
			||||||
tested since I can't test some platforms (DOS, Windows, Allegro, etc).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
X/Mesa Driver
 | 
					 | 
				
			||||||
-------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The source files for the X/Mesa driver in src/X have been renamed.
 | 
					 | 
				
			||||||
The xmesa[1234].c files are gone.  The new files are xm_api.c,
 | 
					 | 
				
			||||||
xm_dd.c, xm_line.c, xm_span.c and xm_tri.c.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Multitexture
 | 
					 | 
				
			||||||
------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Eight texture units are now supported by default.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OpenGL SI related changes
 | 
					 | 
				
			||||||
-------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
In an effort to make Mesa's internal interfaces more like the OpenGL
 | 
					 | 
				
			||||||
SI interfaces, a number of changes have been made:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
1. Importing the SI's glcore.h file which defines a number of
 | 
					 | 
				
			||||||
interface structures like __GLimports and __GLexports.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
2. Renamed "struct gl_context" to "struct __GLcontextRec".
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
3. Added __glCoreCreateContext() and __glCoreNopDispatch() functions.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
4. The GLcontext member Visual is no longer a pointer.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
5. New file: imports.c to setup default import functions for Mesa.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
16-bit color channels
 | 
					 | 
				
			||||||
---------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
There's experimental support for 16-bit color channels (64-bit pixels)
 | 
					 | 
				
			||||||
in Mesa 3.5.  Only the OSMesa interface can be used for 16-bit rendering.
 | 
					 | 
				
			||||||
Type "make linux-osmesa16" in the top-level directory to build the
 | 
					 | 
				
			||||||
special libOSMesa16.so library.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
This hasn't been tested very thoroughly yet so please file bug reports
 | 
					 | 
				
			||||||
if you have trouble.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
In the future I hope to implement support for 32-bit, floating point
 | 
					 | 
				
			||||||
color channels.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
----------------------------------------------------------------------
 | 
					 | 
				
			||||||
$Id: RELNOTES-3.5,v 1.14 2001/06/20 19:02:48 brianp Exp $
 | 
					 | 
				
			||||||
@@ -1,163 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
                           Mesa 4.0 release notes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                             October 18, 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 version 4.0 signifies two things:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  1. A stabilization of the 3.5 development release
 | 
					 | 
				
			||||||
  2. Implementation of the OpenGL 1.3 specification
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Note that the Mesa major version number is incremented with the OpenGL
 | 
					 | 
				
			||||||
minor version number:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   Mesa 1.x  ==  OpenGL 1.0
 | 
					 | 
				
			||||||
   Mesa 2.x  ==  OpenGL 1.1
 | 
					 | 
				
			||||||
   Mesa 3.x  ==  OpenGL 1.2
 | 
					 | 
				
			||||||
   Mesa 4.x  ==  OpenGL 1.3
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Features
 | 
					 | 
				
			||||||
------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa 3.5 already had all the new features of OpenGL 1.3, implemented as
 | 
					 | 
				
			||||||
extensions.  These extensions were simply promoted to standard features:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   GL_ARB_multisample
 | 
					 | 
				
			||||||
   GL_ARB_multitexture
 | 
					 | 
				
			||||||
   GL_ARB_texture_border_clamp
 | 
					 | 
				
			||||||
   GL_ARB_texture_compression
 | 
					 | 
				
			||||||
   GL_ARB_texture_cube_map
 | 
					 | 
				
			||||||
   GL_ARB_texture_env_add
 | 
					 | 
				
			||||||
   GL_ARB_texture_env_combine
 | 
					 | 
				
			||||||
   GL_ARB_texture_env_dot3
 | 
					 | 
				
			||||||
   GL_ARB_transpose_matrix
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
In Mesa 4.0 the functions defined by these extensions are now available
 | 
					 | 
				
			||||||
without the "ARB" suffix.  For example, glLoadTransposeMatrixf() is now
 | 
					 | 
				
			||||||
a standard API function.  The new functions in OpenGL 1.3 and Mesa 4.0 are:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   glActiveTexture
 | 
					 | 
				
			||||||
   glClientActiveTexture
 | 
					 | 
				
			||||||
   glCompressedTexImage1D
 | 
					 | 
				
			||||||
   glCompressedTexImage2D
 | 
					 | 
				
			||||||
   glCompressedTexImage3D
 | 
					 | 
				
			||||||
   glCompressedTexSubImage1D
 | 
					 | 
				
			||||||
   glCompressedTexSubImage2D
 | 
					 | 
				
			||||||
   glCompressedTexSubImage3D
 | 
					 | 
				
			||||||
   glGetCompressedTexImage
 | 
					 | 
				
			||||||
   glLoadTransposeMatrixd
 | 
					 | 
				
			||||||
   glLoadTransposeMatrixf
 | 
					 | 
				
			||||||
   glMultiTexCoord1d
 | 
					 | 
				
			||||||
   glMultiTexCoord1dv
 | 
					 | 
				
			||||||
   glMultiTexCoord1f
 | 
					 | 
				
			||||||
   glMultiTexCoord1fv
 | 
					 | 
				
			||||||
   glMultiTexCoord1i
 | 
					 | 
				
			||||||
   glMultiTexCoord1iv
 | 
					 | 
				
			||||||
   glMultiTexCoord1s
 | 
					 | 
				
			||||||
   glMultiTexCoord1sv
 | 
					 | 
				
			||||||
   glMultiTexCoord2d
 | 
					 | 
				
			||||||
   glMultiTexCoord2dv
 | 
					 | 
				
			||||||
   glMultiTexCoord2f
 | 
					 | 
				
			||||||
   glMultiTexCoord2fv
 | 
					 | 
				
			||||||
   glMultiTexCoord2i
 | 
					 | 
				
			||||||
   glMultiTexCoord2iv
 | 
					 | 
				
			||||||
   glMultiTexCoord2s
 | 
					 | 
				
			||||||
   glMultiTexCoord2sv
 | 
					 | 
				
			||||||
   glMultiTexCoord3d
 | 
					 | 
				
			||||||
   glMultiTexCoord3dv
 | 
					 | 
				
			||||||
   glMultiTexCoord3f
 | 
					 | 
				
			||||||
   glMultiTexCoord3fv
 | 
					 | 
				
			||||||
   glMultiTexCoord3i
 | 
					 | 
				
			||||||
   glMultiTexCoord3iv
 | 
					 | 
				
			||||||
   glMultiTexCoord3s
 | 
					 | 
				
			||||||
   glMultiTexCoord3sv
 | 
					 | 
				
			||||||
   glMultiTexCoord4d
 | 
					 | 
				
			||||||
   glMultiTexCoord4dv
 | 
					 | 
				
			||||||
   glMultiTexCoord4f
 | 
					 | 
				
			||||||
   glMultiTexCoord4fv
 | 
					 | 
				
			||||||
   glMultiTexCoord4i
 | 
					 | 
				
			||||||
   glMultiTexCoord4iv
 | 
					 | 
				
			||||||
   glMultiTexCoord4s
 | 
					 | 
				
			||||||
   glMultiTexCoord4sv
 | 
					 | 
				
			||||||
   glMultTransposeMatrixd
 | 
					 | 
				
			||||||
   glMultTransposeMatrixf
 | 
					 | 
				
			||||||
   glSampleCoverage
 | 
					 | 
				
			||||||
   glSamplePass
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLX 1.4 is the companion to OpenGL 1.3.  The only new features in GLX 1.4
 | 
					 | 
				
			||||||
are support for multisampling and the GLX_ARB_get_proc_address extension.
 | 
					 | 
				
			||||||
glXGetProcAddress() is the only new function in GLX 1.4.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Multisample and Texture Compression
 | 
					 | 
				
			||||||
-----------------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The OpenGL 1.3 specification allows the multisample and texture compression
 | 
					 | 
				
			||||||
features to essentially be no-ops.  For example, if you query for multisample
 | 
					 | 
				
			||||||
support you'll find none, but the API functions work.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Similarly, texture compression is not implemented by any of the software
 | 
					 | 
				
			||||||
drivers but you can specify a generic compressed texture format (like
 | 
					 | 
				
			||||||
GL_COMPRESSED_RGBA) to glTexImage2D and it'll be accepted.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Device Drivers
 | 
					 | 
				
			||||||
--------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa advertises itself as either OpenGL 1.2 or OpenGL 1.3 depending on the
 | 
					 | 
				
			||||||
device driver.  If the driver enables all the ARB extensions which are part
 | 
					 | 
				
			||||||
of OpenGL 1.3 then glGetString(GL_VERSION) will return "1.3".  Otherwise,
 | 
					 | 
				
			||||||
it'll return "1.2".
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
A number of Mesa's software drivers haven't been actively maintained for
 | 
					 | 
				
			||||||
some time.  We rely on volunteers to maintain many of the drivers.
 | 
					 | 
				
			||||||
Here's the current status of all included drivers:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Driver			Status
 | 
					 | 
				
			||||||
----------------------	---------------------
 | 
					 | 
				
			||||||
XMesa (Xlib)		implements OpenGL 1.3
 | 
					 | 
				
			||||||
OSMesa (off-screen)	implements OpenGL 1.3
 | 
					 | 
				
			||||||
FX (3dfx Voodoo1/2)	implements OpenGL 1.3
 | 
					 | 
				
			||||||
SVGA			implements OpenGL 1.3
 | 
					 | 
				
			||||||
Wind River UGL		implements OpenGL 1.3
 | 
					 | 
				
			||||||
Windows/Win32		implements OpenGL 1.3
 | 
					 | 
				
			||||||
GGI			needs updating
 | 
					 | 
				
			||||||
DOS/DJGPP		needs updating
 | 
					 | 
				
			||||||
BeOS			needs updating
 | 
					 | 
				
			||||||
Allegro			needs updating
 | 
					 | 
				
			||||||
D3D			needs updating
 | 
					 | 
				
			||||||
DOS			needs updating
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Special thanks go to Karl Schultz for updating the Windows driver.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The XFree86/DRI drivers	have not yet been updated to use Mesa 4.0 as of
 | 
					 | 
				
			||||||
September 2001, but that should happen eventually.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Other Changes
 | 
					 | 
				
			||||||
-------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
See the VERSIONS file for more details about bug fixes, etc. in Mesa 4.0.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
----------------------------------------------------------------------
 | 
					 | 
				
			||||||
$Id: RELNOTES-4.0,v 3.2 2001/10/17 14:59:21 brianp Exp $
 | 
					 | 
				
			||||||
@@ -1,22 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
                          Mesa 4.0.1 release notes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                             December 17, 2001
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                              PLEASE READ!!!!
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Introduction
 | 
					 | 
				
			||||||
------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa uses an even/odd version number scheme like the Linux kernel.
 | 
					 | 
				
			||||||
Odd numbered versions (such as 3.3) designate new developmental releases.
 | 
					 | 
				
			||||||
Even numbered versions (such as 3.4) designate stable releases.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa 4.0.1 only contains bug fixes since version 4.0.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
See the docs/VERSIONS file for the list of bug fixes.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
----------------------------------------------------------------------
 | 
					 | 
				
			||||||
$Id: RELNOTES-4.0.1,v 1.2 2001/12/18 14:08:23 brianp Exp $
 | 
					 | 
				
			||||||
@@ -1,50 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
                          Mesa 4.0.2 release notes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                             March 25, 2002
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                              PLEASE READ!!!!
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Introduction
 | 
					 | 
				
			||||||
------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa uses an even/odd version number scheme like the Linux kernel.
 | 
					 | 
				
			||||||
Odd numbered versions (such as 3.3) designate new developmental releases.
 | 
					 | 
				
			||||||
Even numbered versions (such as 3.4) designate stable releases.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa 4.0.2 only contains bug fixes and a new DOS driver since version 4.0.1.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
See the docs/VERSIONS file for the list of bug fixes.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Device Drivers
 | 
					 | 
				
			||||||
--------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa advertises itself as either OpenGL 1.2 or OpenGL 1.3 depending on the
 | 
					 | 
				
			||||||
device driver.  If the driver enables all the ARB extensions which are part
 | 
					 | 
				
			||||||
of OpenGL 1.3 then glGetString(GL_VERSION) will return "1.3".  Otherwise,
 | 
					 | 
				
			||||||
it'll return "1.2".
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
A number of Mesa's software drivers haven't been actively maintained for
 | 
					 | 
				
			||||||
some time.  We rely on volunteers to maintain many of the drivers.
 | 
					 | 
				
			||||||
Here's the current status of all included drivers:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Driver			Status
 | 
					 | 
				
			||||||
----------------------	---------------------
 | 
					 | 
				
			||||||
XMesa (Xlib)		implements OpenGL 1.3
 | 
					 | 
				
			||||||
OSMesa (off-screen)	implements OpenGL 1.3
 | 
					 | 
				
			||||||
FX (3dfx Voodoo1/2)	implements OpenGL 1.3
 | 
					 | 
				
			||||||
SVGA			implements OpenGL 1.3
 | 
					 | 
				
			||||||
Wind River UGL		implements OpenGL 1.3
 | 
					 | 
				
			||||||
Windows/Win32		implements OpenGL 1.3
 | 
					 | 
				
			||||||
DOS/DJGPP		implements OpenGL 1.3 (new in Mesa 4.0.2)
 | 
					 | 
				
			||||||
GGI			needs updating
 | 
					 | 
				
			||||||
BeOS			needs updating
 | 
					 | 
				
			||||||
Allegro			needs updating
 | 
					 | 
				
			||||||
D3D			needs updating
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
----------------------------------------------------------------------
 | 
					 | 
				
			||||||
$Id: RELNOTES-4.0.2,v 1.2 2002/03/23 02:38:39 brianp Exp $
 | 
					 | 
				
			||||||
@@ -1,52 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
                          Mesa 4.0.3 release notes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                               June 25, 2002
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                              PLEASE READ!!!!
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Introduction
 | 
					 | 
				
			||||||
------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa uses an even/odd version number scheme like the Linux kernel.
 | 
					 | 
				
			||||||
Odd numbered versions (such as 3.3) designate new developmental releases.
 | 
					 | 
				
			||||||
Even numbered versions (such as 3.4) designate stable releases.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa 4.0.3 basically just contains bug fixes version 4.0.2.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
See the docs/VERSIONS file for the list of bug fixes.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The GGI driver has been updated, thanks to Filip Spacek.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Device Drivers
 | 
					 | 
				
			||||||
--------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa advertises itself as either OpenGL 1.2 or OpenGL 1.3 depending on the
 | 
					 | 
				
			||||||
device driver.  If the driver enables all the ARB extensions which are part
 | 
					 | 
				
			||||||
of OpenGL 1.3 then glGetString(GL_VERSION) will return "1.3".  Otherwise,
 | 
					 | 
				
			||||||
it'll return "1.2".
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
A number of Mesa's software drivers haven't been actively maintained for
 | 
					 | 
				
			||||||
some time.  We rely on volunteers to maintain many of the drivers.
 | 
					 | 
				
			||||||
Here's the current status of all included drivers:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Driver			Status
 | 
					 | 
				
			||||||
----------------------	---------------------
 | 
					 | 
				
			||||||
XMesa (Xlib)		implements OpenGL 1.3
 | 
					 | 
				
			||||||
OSMesa (off-screen)	implements OpenGL 1.3
 | 
					 | 
				
			||||||
FX (3dfx Voodoo1/2)	implements OpenGL 1.3
 | 
					 | 
				
			||||||
SVGA			implements OpenGL 1.3
 | 
					 | 
				
			||||||
Wind River UGL		implements OpenGL 1.3
 | 
					 | 
				
			||||||
Windows/Win32		implements OpenGL 1.3
 | 
					 | 
				
			||||||
DOS/DJGPP		implements OpenGL 1.3 (new in Mesa 4.0.2)
 | 
					 | 
				
			||||||
GGI			implements OpenGL 1.3
 | 
					 | 
				
			||||||
BeOS			needs updating
 | 
					 | 
				
			||||||
Allegro			needs updating
 | 
					 | 
				
			||||||
D3D			needs updating
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
----------------------------------------------------------------------
 | 
					 | 
				
			||||||
$Id: RELNOTES-4.0.3,v 1.2 2002/06/26 02:36:34 brianp Exp $
 | 
					 | 
				
			||||||
@@ -1,308 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
                            Mesa 4.1 release notes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                               October 29, 2002
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                                PLEASE READ!!!!
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Introduction
 | 
					 | 
				
			||||||
------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa uses an even/odd version number scheme like the Linux kernel.
 | 
					 | 
				
			||||||
Even numbered versions (such as 4.0) designate stable releases.
 | 
					 | 
				
			||||||
Odd numbered versions (such as 4.1) designate new developmental releases.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Features in Mesa 4.1
 | 
					 | 
				
			||||||
------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New extensions.  Docs at http://oss.sgi.com/projects/ogl-sample/registry/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_NV_vertex_program
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    NVIDIA's vertex programming extension
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_NV_vertex_program1_1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    A few features built on top of GL_NV_vertex_program
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_ARB_window_pos
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    This is the ARB-approved version of GL_MESA_window_pos
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_ARB_depth_texture
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    This is the ARB-approved version of GL_SGIX_depth_texture.
 | 
					 | 
				
			||||||
    It allows depth (Z buffer) data to be stored in textures.
 | 
					 | 
				
			||||||
    This is used by GL_ARB_shadow
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_ARB_shadow
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Shadow mapping with depth textures.
 | 
					 | 
				
			||||||
    This is the ARB-approved version of GL_SGIX_shadow.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_ARB_shadow_ambient
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Allows one to specify the luminance of shadowed pixels.
 | 
					 | 
				
			||||||
    This is the ARB-approved version of GL_SGIX_shadow_ambient.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_EXT_shadow_funcs
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Extends the set of GL_ARB_shadow texture comparision functions to
 | 
					 | 
				
			||||||
    include all eight of standard OpenGL dept-test functions.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_ARB_point_parameters
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    This is basically the same as GL_EXT_point_parameters.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_ARB_texture_env_crossbar
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Allows any texture combine stage to reference any texture source unit.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_NV_point_sprite
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    For rendering points as textured quads.  Useful for particle effects.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_NV_texture_rectangle  (new in 4.0.4 actually)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Allows one to use textures with sizes that are not powers of two.
 | 
					 | 
				
			||||||
    Note that mipmapping and several texture wrap modes are not allowed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_EXT_multi_draw_arrays
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Allows arrays of vertex arrays to be rendered with one call.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_EXT_stencil_two_side
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   Separate stencil modes for front and back-facing polygons.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLX_SGIX_fbconfig & GLX_SGIX_pbuffer
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   Off-screen rendering support.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_ATI_texture_mirror_once
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   Adds two new texture wrap modes: GL_MIRROR_CLAMP_ATI and
 | 
					 | 
				
			||||||
   GL_MIRROR_CLAMP_TO_EDGE_ATI.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Device Driver Status
 | 
					 | 
				
			||||||
--------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
A number of Mesa's software drivers haven't been actively maintained for
 | 
					 | 
				
			||||||
some time.  We rely on volunteers to maintain many of these drivers.
 | 
					 | 
				
			||||||
Here's the current status of all included drivers:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Driver			Status
 | 
					 | 
				
			||||||
----------------------	---------------------
 | 
					 | 
				
			||||||
XMesa (Xlib)		implements OpenGL 1.3
 | 
					 | 
				
			||||||
OSMesa (off-screen)	implements OpenGL 1.3
 | 
					 | 
				
			||||||
FX (3dfx Voodoo1/2)	implements OpenGL 1.3
 | 
					 | 
				
			||||||
SVGA			implements OpenGL 1.3
 | 
					 | 
				
			||||||
Wind River UGL		implements OpenGL 1.3
 | 
					 | 
				
			||||||
Windows/Win32		implements OpenGL 1.3
 | 
					 | 
				
			||||||
DOS/DJGPP		implements OpenGL 1.3
 | 
					 | 
				
			||||||
GGI			implements OpenGL 1.3
 | 
					 | 
				
			||||||
BeOS			needs updating (underway)
 | 
					 | 
				
			||||||
Allegro			needs updating
 | 
					 | 
				
			||||||
D3D			needs updating
 | 
					 | 
				
			||||||
DOS			needs updating
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New features in GLUT
 | 
					 | 
				
			||||||
--------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
1. Frames per second printing
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   GLUT now looks for an environment variable called "GLUT_FPS".  If it's
 | 
					 | 
				
			||||||
   set, GLUT will print out a frames/second statistic to stderr when
 | 
					 | 
				
			||||||
   glutSwapBuffers() is called.  By default, frames/second is computed
 | 
					 | 
				
			||||||
   and displayed once every 5 seconds.  You can specify a different
 | 
					 | 
				
			||||||
   interval (in milliseconds) when you set the env var.  For example
 | 
					 | 
				
			||||||
   'export GLUT_FPS=1000' or 'setenv GLUT_FPS 1000' will set the interval
 | 
					 | 
				
			||||||
   to one second.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   NOTE: the demo or application must call the glutInit() function for
 | 
					 | 
				
			||||||
   this to work.  Otherwise, the env var will be ignored.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   Finally, this feature may not be reliable in multi-window programs.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
2. glutGetProcAddress() function
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   The new function:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        void *glutGetProcAddress(const char *procName)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   is a wrapper for glXGetProcAddressARB() and wglGetProcAddress().  It
 | 
					 | 
				
			||||||
   lets you dynamically get the address of an OpenGL function at runtime.
 | 
					 | 
				
			||||||
   The GLUT_API_VERSION has been bumped to 5, but I haven't bumped the
 | 
					 | 
				
			||||||
   GLUT version number from 3.7 since that's probably Mark Kilgard's role.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   This function should probably also be able to return the address of
 | 
					 | 
				
			||||||
   GLUT functions themselves, but it doesn't do that yet.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
XXX Things To Do Yet XXXX
 | 
					 | 
				
			||||||
-------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
isosurf with vertex program exhibits some missing triangles (probably
 | 
					 | 
				
			||||||
when recycling the vertex buffer for long prims).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Porting Info
 | 
					 | 
				
			||||||
------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
If you're porting a DRI or other driver from Mesa 4.0.x to Mesa 4.1 here
 | 
					 | 
				
			||||||
are some things to change:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
1. ctx->Texture._ReallyEnabled is obsolete.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   Since there are now 5 texture targets (1D, 2D, 3D, cube and rect) that
 | 
					 | 
				
			||||||
   left room for only 6 units (6*5 < 32) in this field.
 | 
					 | 
				
			||||||
   This field is being replaced by ctx->Texture._EnabledUnits which has one
 | 
					 | 
				
			||||||
   bit per texture unit.  If the bit k of _EnabledUnits is set, that means
 | 
					 | 
				
			||||||
   ctx->Texture.Unit[k]._ReallyEnabled is non-zero.  You'll have to look at
 | 
					 | 
				
			||||||
   ctx->Texture.Unit[k]._ReallyEnabled to learn if the 1D, 2D, 3D, cube or
 | 
					 | 
				
			||||||
   rect texture is enabled for unit k.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   This also means that the constants TEXTURE1_*, TEXTURE2_*, etc are
 | 
					 | 
				
			||||||
   obsolete.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   The tokens TEXTURE0_* have been replaced as well (since there's no
 | 
					 | 
				
			||||||
   significance to the "0" part:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   old token           new token
 | 
					 | 
				
			||||||
   TEXTURE0_1D         TEXTURE_1D_BIT
 | 
					 | 
				
			||||||
   TEXTURE0_2D         TEXTURE_2D_BIT
 | 
					 | 
				
			||||||
   TEXTURE0_3D         TEXTURE_3D_BIT
 | 
					 | 
				
			||||||
   TEXTURE0_CUBE       TEXTURE_CUBE_BIT
 | 
					 | 
				
			||||||
   <none>              TEXTURE_RECT_BIT
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   These tokens are only used for the ctx->Texture.Unit[i].Enabled and
 | 
					 | 
				
			||||||
   ctx->Texture.Unit[i]._ReallyEnabled fields.  Exactly 0 or 1 bits will
 | 
					 | 
				
			||||||
   be set in _ReallyEnabled at any time!
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   Q: "What's the purpose of Unit[i].Enabled vs Unit[i]._ReallyEnabled?"
 | 
					 | 
				
			||||||
   A: The user can enable GL_TEXTURE_1D, GL_TEXTURE_2D, etc for any
 | 
					 | 
				
			||||||
      texure unit all at once (an unusual thing to do).
 | 
					 | 
				
			||||||
      OpenGL defines priorities that basically say GL_TEXTURE_2D has
 | 
					 | 
				
			||||||
      higher priority than GL_TEXTURE_1D, etc.  Also, just because a
 | 
					 | 
				
			||||||
      texture target is enabled by the user doesn't mean we'll actually
 | 
					 | 
				
			||||||
      use that texture!  If a texture object is incomplete (missing mip-
 | 
					 | 
				
			||||||
      map levels, etc) it's as if texturing is disabled for that target.
 | 
					 | 
				
			||||||
      The _ReallyEnabled field will have a bit set ONLY if the texture
 | 
					 | 
				
			||||||
      target is enabled and complete.  This spares the driver writer from
 | 
					 | 
				
			||||||
      examining a _lot_ of GL state to determine which texture target is
 | 
					 | 
				
			||||||
      to be used.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
2. Tnl tokens changes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   During the implementation of GL_NV_vertex_program some of the vertex
 | 
					 | 
				
			||||||
   buffer code was changed.  Specifically, the VERT_* bits defined in
 | 
					 | 
				
			||||||
   tnl/t_context.h have been renamed to better match the conventions of
 | 
					 | 
				
			||||||
   GL_NV_vertex_program.  The old names are still present but obsolete.
 | 
					 | 
				
			||||||
   Drivers should use the newer names.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   For example:  VERT_RGBA is now VERT_BIT_COLOR0 and
 | 
					 | 
				
			||||||
   VERT_SPEC_RGB is now VERT_BIT_COLOR1.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
3. Read/Draw Buffer changes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   The business of setting the current read/draw buffers in Mesa 4.0.x
 | 
					 | 
				
			||||||
   was complicated.  It's much simpler now in Mesa 4.1.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   Here are the changes:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   - Renamed ctx->Color.DrawDestMask to ctx->Color._DrawDestMask
 | 
					 | 
				
			||||||
   - Removed ctx->Color.DriverDrawBuffer
 | 
					 | 
				
			||||||
   - Removed ctx->Pixel.DriverReadBuffer
 | 
					 | 
				
			||||||
   - Removed ctx->Color.MultiDrawBuffer
 | 
					 | 
				
			||||||
   - Removed ctx->Driver.SetDrawBuffer()
 | 
					 | 
				
			||||||
   - Removed swrast->Driver.SetReadBuffer().
 | 
					 | 
				
			||||||
   - Added ctx->Color._DrawDestMask - a bitmask of FRONT/BACK_LEFT/RIGHT_BIT
 | 
					 | 
				
			||||||
     values to indicate the current draw buffers.
 | 
					 | 
				
			||||||
   - Added ctx->Pixel._ReadSrcMask to indicate the source for pixel reading.
 | 
					 | 
				
			||||||
     The value is _one_ of the FRONT/BACK_LEFT/RIGHT_BIT values.
 | 
					 | 
				
			||||||
   - Added ctx->Driver.DrawBuffer() and ctx->Driver.ReadBuffer().
 | 
					 | 
				
			||||||
     These functions exactly correspond to glDrawBuffer and glReadBuffer calls.
 | 
					 | 
				
			||||||
     Many drivers will set ctx->Driver.DrawBuffer = _swrast_DrawBuffer and
 | 
					 | 
				
			||||||
     leave ctx->Draw.ReadBuffer NULL.
 | 
					 | 
				
			||||||
     DRI drivers should implement their own function for ctx->Driver.DrawBuffer
 | 
					 | 
				
			||||||
     and use it to set the current hardware drawing buffer.  You'll probably
 | 
					 | 
				
			||||||
     also want to check for GL_FRONT_AND_BACK mode and fall back to software.
 | 
					 | 
				
			||||||
     Call _swrast_DrawBuffer() too, to update the swrast state.
 | 
					 | 
				
			||||||
   - Added swrast->Driver.SetBuffer().
 | 
					 | 
				
			||||||
     This function should be implemented by all device drivers that use swrast.
 | 
					 | 
				
			||||||
     Mesa will call it to specify the buffer to use for span reading AND
 | 
					 | 
				
			||||||
     writing and point/line/triangle rendering.
 | 
					 | 
				
			||||||
     There should be no confusion between current read or draw buffer anymore.
 | 
					 | 
				
			||||||
   - Added swrast->CurrentBuffer to indicate which color buffer to read/draw.
 | 
					 | 
				
			||||||
     Will be FRONT_LEFT_BIT, BACK_LEFT_BIT, FRONT_RIGHT_BIT or BACK_RIGHT_BIT.
 | 
					 | 
				
			||||||
     This value is usually passed to swrast->Driver.SetBuffer().
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
4. _mesa_create_context() changes.  This function now takes a pointer to
 | 
					 | 
				
			||||||
   a __GLimports object.  The __GLimports structure contains function
 | 
					 | 
				
			||||||
   pointers to system functions like fprintf(), malloc(), etc.
 | 
					 | 
				
			||||||
   The _mesa_init_default_imports() function can be used to initialize
 | 
					 | 
				
			||||||
   a __GLimports object.  Most device drivers (like the DRI drivers)
 | 
					 | 
				
			||||||
   should use this.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
5. In tnl's struct vertex_buffer, the field "ProjectedClipCoords"
 | 
					 | 
				
			||||||
   has been replaced by "NdcPtr" to better match the OpenGL spec's
 | 
					 | 
				
			||||||
   terminology.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
6. Since GL_EXT_stencil_two_side has been implemented, many of the
 | 
					 | 
				
			||||||
   ctx->Stencil fields are now 2-element arrays.  For example,
 | 
					 | 
				
			||||||
   "GLenum Ref" is now "GLenum Ref[2]"  The [0] elements are the front-face
 | 
					 | 
				
			||||||
   values and the [1] elements are the back-face values.
 | 
					 | 
				
			||||||
   ctx->Stencil.ActiveFace is 0 or 1 to indicate the current face for
 | 
					 | 
				
			||||||
   the glStencilOp/Func/Mask() functions.
 | 
					 | 
				
			||||||
   ctx->Stencil.TestTwoSide controls whether or not 1 or 2-sided stenciling
 | 
					 | 
				
			||||||
   is enabled.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
7. Removed ctx->Polygon._OffsetAny.  Removed ctx->Polygon.OffsetMRD.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
8. GLfloat / GLchan changes:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   - Changed ctx->Driver.ClearColor() to take GLfloat[4] instead of GLchan[4].
 | 
					 | 
				
			||||||
     ctx->Color.ClearColor is now GLfloat[4] too.
 | 
					 | 
				
			||||||
   - Changed ctx->Driver.AlphaRef() to take GLfloat instead of GLchan.
 | 
					 | 
				
			||||||
   - ctx->Color.AlphaRef is now GLfloat.
 | 
					 | 
				
			||||||
   - texObj->BorderColor is now GLfloat[4].  texObj->_BorderChan is GLchan[4].
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   This is part of an effort to remove all GLchan types from core Mesa so
 | 
					 | 
				
			||||||
   that someday we can support 8, 16 and 32-bit color channels dynamically
 | 
					 | 
				
			||||||
   at runtime, instead of at compile-time.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
9. GLboolean ctx->Tranform.ClipEnabled[MAX_CLIP_PLANES] has been replaced
 | 
					 | 
				
			||||||
   by GLuint ctx->Transform.ClipPlanesEnabled.  The later is a bitfield.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
10. There's a new matrix_stack type in mtypes.h used for the Modelview,
 | 
					 | 
				
			||||||
   Projection, Color and Texcoord matrix stacks.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
11. The ctx->Current.* fields have changed a lot.  Now, there's a
 | 
					 | 
				
			||||||
   ctx->Current.Attrib[] array for all vertex attributes which matches
 | 
					 | 
				
			||||||
   the NV vertex program conventions.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
----------------------------------------------------------------------
 | 
					 | 
				
			||||||
$Id: RELNOTES-4.1,v 1.22 2002/10/29 15:06:37 brianp Exp $
 | 
					 | 
				
			||||||
@@ -1,85 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
                            Mesa 5.0 release notes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                              November 13, 2002
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                                PLEASE READ!!!!
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Introduction
 | 
					 | 
				
			||||||
------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa uses an even/odd version number scheme like the Linux kernel.
 | 
					 | 
				
			||||||
Even-numbered versions (such as 5.0) designate stable releases.
 | 
					 | 
				
			||||||
Odd-numbered versions (such as 4.1) designate new developmental releases.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa 5.0 is basically just a stabilization of Mesa 4.1.  To see a list of
 | 
					 | 
				
			||||||
bug fixes, etc. see the VERSIONS file.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Features in Mesa 5.0
 | 
					 | 
				
			||||||
------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa 5.0 supports OpenGL 1.4.  Note Mesa's versioning convention:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   OpenGL Version    Mesa Version
 | 
					 | 
				
			||||||
   ------------------------------
 | 
					 | 
				
			||||||
        1.0             1.x
 | 
					 | 
				
			||||||
        1.1             2.x
 | 
					 | 
				
			||||||
        1.2             3.x
 | 
					 | 
				
			||||||
        1.3             4.x
 | 
					 | 
				
			||||||
        1.4             5.x
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OpenGL 1.4 (and Mesa 5.0) incorporates the following OpenGL extensions as
 | 
					 | 
				
			||||||
standard features:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	GL_ARB_depth_texture
 | 
					 | 
				
			||||||
	GL_ARB_shadow
 | 
					 | 
				
			||||||
	GL_ARB_texture_env_crossbar
 | 
					 | 
				
			||||||
	GL_ARB_texture_mirror_repeat
 | 
					 | 
				
			||||||
	GL_ARB_window_pos
 | 
					 | 
				
			||||||
	GL_EXT_blend_color
 | 
					 | 
				
			||||||
	GL_EXT_blend_func_separate
 | 
					 | 
				
			||||||
	GL_EXT_blend_logic_op
 | 
					 | 
				
			||||||
	GL_EXT_blend_minmax
 | 
					 | 
				
			||||||
	GL_EXT_blend_subtract
 | 
					 | 
				
			||||||
	GL_EXT_fog_coord
 | 
					 | 
				
			||||||
	GL_EXT_multi_draw_arrays
 | 
					 | 
				
			||||||
	GL_EXT_point_parameters
 | 
					 | 
				
			||||||
	GL_EXT_secondary_color
 | 
					 | 
				
			||||||
	GL_EXT_stencil_wrap
 | 
					 | 
				
			||||||
	GL_SGIS_generate_mipmap
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Device Driver Status
 | 
					 | 
				
			||||||
--------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
A number of Mesa's software drivers haven't been actively maintained for
 | 
					 | 
				
			||||||
some time.  We rely on volunteers to maintain many of these drivers.
 | 
					 | 
				
			||||||
Here's the current status of all included drivers:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Driver			Status
 | 
					 | 
				
			||||||
----------------------	---------------------
 | 
					 | 
				
			||||||
XMesa (Xlib)		implements OpenGL 1.4
 | 
					 | 
				
			||||||
OSMesa (off-screen)	implements OpenGL 1.4
 | 
					 | 
				
			||||||
FX (3dfx Voodoo1/2)	implements OpenGL 1.3
 | 
					 | 
				
			||||||
SVGA			implements OpenGL 1.3
 | 
					 | 
				
			||||||
Wind River UGL		implements OpenGL 1.3
 | 
					 | 
				
			||||||
Windows/Win32		implements OpenGL 1.4
 | 
					 | 
				
			||||||
DOS/DJGPP		implements OpenGL 1.3
 | 
					 | 
				
			||||||
GGI			implements OpenGL 1.3
 | 
					 | 
				
			||||||
DOS			implements OpenGL 1.4
 | 
					 | 
				
			||||||
BeOS			needs updating (underway)
 | 
					 | 
				
			||||||
Allegro			needs updating
 | 
					 | 
				
			||||||
D3D			needs updating
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Note: supporting OpenGL 1.4 (vs. 1.3 or 1.2) usually only requires that the
 | 
					 | 
				
			||||||
driver call the _mesa_enable_1_4_extensions() function.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
----------------------------------------------------------------------
 | 
					 | 
				
			||||||
$Id: RELNOTES-5.0,v 3.2 2002/11/13 15:33:51 brianp Exp $
 | 
					 | 
				
			||||||
@@ -1,46 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
                           Mesa 5.0.1 release notes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                               March 30, 2003
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Introduction
 | 
					 | 
				
			||||||
------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa uses an even/odd version number scheme like the Linux kernel.
 | 
					 | 
				
			||||||
Even-numbered versions (such as 5.0.x) designate stable releases.
 | 
					 | 
				
			||||||
Odd-numbered versions (such as 4.1.x) designate new developmental releases.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa 5.0.1 just fixes bugs found since the 5.0 release.  See the VERSIONS
 | 
					 | 
				
			||||||
file for details.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Device Driver Status
 | 
					 | 
				
			||||||
--------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
A number of Mesa's software drivers haven't been actively maintained for
 | 
					 | 
				
			||||||
some time.  We rely on volunteers to maintain many of these drivers.
 | 
					 | 
				
			||||||
Here's the current status of all included drivers:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Driver			Status
 | 
					 | 
				
			||||||
----------------------	---------------------
 | 
					 | 
				
			||||||
XMesa (Xlib)		implements OpenGL 1.4
 | 
					 | 
				
			||||||
OSMesa (off-screen)	implements OpenGL 1.4
 | 
					 | 
				
			||||||
FX (3dfx Voodoo1/2)	implements OpenGL 1.3
 | 
					 | 
				
			||||||
SVGA			implements OpenGL 1.3
 | 
					 | 
				
			||||||
Wind River UGL		implements OpenGL 1.3
 | 
					 | 
				
			||||||
Windows/Win32		implements OpenGL 1.4
 | 
					 | 
				
			||||||
DJGPP			implements OpenGL 1.4
 | 
					 | 
				
			||||||
GGI			implements OpenGL 1.3
 | 
					 | 
				
			||||||
BeOS			implements OpenGL 1.4
 | 
					 | 
				
			||||||
Allegro			needs updating
 | 
					 | 
				
			||||||
D3D			needs updating
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Note: supporting OpenGL 1.4 (vs. 1.3 or 1.2) usually only requires that the
 | 
					 | 
				
			||||||
driver call the _mesa_enable_1_4_extensions() function.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
----------------------------------------------------------------------
 | 
					 | 
				
			||||||
$Id: RELNOTES-5.0.1,v 3.1 2003/03/30 16:17:54 brianp Exp $
 | 
					 | 
				
			||||||
@@ -1,46 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
                           Mesa 5.0.2 release notes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                               September 5, 2003
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Introduction
 | 
					 | 
				
			||||||
------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa uses an even/odd version number scheme like the Linux kernel.
 | 
					 | 
				
			||||||
Even-numbered versions (such as 5.0.x) designate stable releases.
 | 
					 | 
				
			||||||
Odd-numbered versions (such as 4.1.x) designate new developmental releases.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa 5.0.2 just fixes bugs found since the 5.0.1 release.  See the VERSIONS
 | 
					 | 
				
			||||||
file for details.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Device Driver Status
 | 
					 | 
				
			||||||
--------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
A number of Mesa's software drivers haven't been actively maintained for
 | 
					 | 
				
			||||||
some time.  We rely on volunteers to maintain many of these drivers.
 | 
					 | 
				
			||||||
Here's the current status of all included drivers:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Driver			Status
 | 
					 | 
				
			||||||
----------------------	---------------------
 | 
					 | 
				
			||||||
XMesa (Xlib)		implements OpenGL 1.4
 | 
					 | 
				
			||||||
OSMesa (off-screen)	implements OpenGL 1.4
 | 
					 | 
				
			||||||
FX (3dfx Voodoo1/2)	implements OpenGL 1.3
 | 
					 | 
				
			||||||
SVGA			implements OpenGL 1.3
 | 
					 | 
				
			||||||
Wind River UGL		implements OpenGL 1.3
 | 
					 | 
				
			||||||
Windows/Win32		implements OpenGL 1.4
 | 
					 | 
				
			||||||
DJGPP			implements OpenGL 1.4
 | 
					 | 
				
			||||||
GGI			implements OpenGL 1.3
 | 
					 | 
				
			||||||
BeOS			implements OpenGL 1.4
 | 
					 | 
				
			||||||
Allegro			needs updating
 | 
					 | 
				
			||||||
D3D			needs updating
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Note: supporting OpenGL 1.4 (vs. 1.3 or 1.2) usually only requires that the
 | 
					 | 
				
			||||||
driver call the _mesa_enable_1_4_extensions() function.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
----------------------------------------------------------------------
 | 
					 | 
				
			||||||
$Id: RELNOTES-5.0.2,v 1.1 2003/09/04 23:10:38 brianp Exp $
 | 
					 | 
				
			||||||
@@ -1,228 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
                            Mesa 5.1 release notes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                              Month day, 2003
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                                PLEASE READ!!!!
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Introduction
 | 
					 | 
				
			||||||
------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mesa uses an even/odd version number scheme like the Linux kernel.
 | 
					 | 
				
			||||||
Even-numbered versions (such as 5.0) designate stable releases.
 | 
					 | 
				
			||||||
Odd-numbered versions (such as 5.1) designate new developmental releases.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Bug fixes
 | 
					 | 
				
			||||||
---------
 | 
					 | 
				
			||||||
See the VERSIONS file for a list of bugs fixed in this release.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Features in Mesa 5.1
 | 
					 | 
				
			||||||
------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_ATI_texture_env_combine3 extension
 | 
					 | 
				
			||||||
   This adds a few new texture combine modes.
 | 
					 | 
				
			||||||
   Contributed by Ian Romanick.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_SGI_texture_color_table
 | 
					 | 
				
			||||||
   Adds a color table lookup to the RGBA texture path.  There's a separate
 | 
					 | 
				
			||||||
   color table for each texture unit.
 | 
					 | 
				
			||||||
   Contributed by Eric Plante.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_NV_fragment_program
 | 
					 | 
				
			||||||
   NVIDIA's fragment-level programming feature.
 | 
					 | 
				
			||||||
   Possible lurking bugs:
 | 
					 | 
				
			||||||
     - the DDX and DDY commands aren't fully tested
 | 
					 | 
				
			||||||
     - there may be bugs in the parser
 | 
					 | 
				
			||||||
     - the TEX and TXP instructions both do perspective correction
 | 
					 | 
				
			||||||
     - the pack/unpack instructions may not be correct
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_EXT_depth_bounds_test
 | 
					 | 
				
			||||||
   This extension adds a scissor-like test for the Z axis.  It's used to
 | 
					 | 
				
			||||||
   optimize stencil-volume shadow algorithms.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_NV_light_max_exponent
 | 
					 | 
				
			||||||
   Lifts the 128 limit for max light exponent.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_EXT_texture_rectangle
 | 
					 | 
				
			||||||
   Identical to GL_NV_texture_rectangle
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_ARB_occlusion_query
 | 
					 | 
				
			||||||
   Useful for visibility-based culling.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_ARB_texture_non_power_of_two
 | 
					 | 
				
			||||||
   Removes the restriction that texture dimensions must be powers of two.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_ARB_vertex_buffer_object
 | 
					 | 
				
			||||||
   Allows server-side vertex arrays, optimized host/card data transfers, etc.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_ARB_point_sprite
 | 
					 | 
				
			||||||
   ARB-approved version of GL_NV_point_sprite.  Basically allows textures
 | 
					 | 
				
			||||||
   to be applied to points.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_IBM_multimode_draw_arrays
 | 
					 | 
				
			||||||
   Allows multiple vertex arrays to be drawn with one call, including arrays
 | 
					 | 
				
			||||||
   of different types of primitives.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_SUN_multi_draw_arrays
 | 
					 | 
				
			||||||
   An alias for GL_EXT_multi_draw_arrays, standard in OpenGL 1.4.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
With the addition of GL_ARB_occlusion_query, GL_ARB_vertex_buffer_object,
 | 
					 | 
				
			||||||
GL_ARB_texture_non_power_of_two and GL_EXT_shadow_funcs, Mesa 5.1 supports
 | 
					 | 
				
			||||||
all the new features of OpenGL 1.5.  Mesa 6.0 (the next stable release)
 | 
					 | 
				
			||||||
will advertise GL_VERSION = "1.5".
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Vertex/Fragment program debugger
 | 
					 | 
				
			||||||
--------------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_MESA_program_debug is an experimental extension to support
 | 
					 | 
				
			||||||
interactive debugging of vertex and fragment programs.  See the
 | 
					 | 
				
			||||||
docs/MESA_program_debug.spec file for details.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The bulk of the vertex/fragment program debugger is implemented
 | 
					 | 
				
			||||||
outside of Mesa.  The GL_MESA_program_debug extension just has minimal
 | 
					 | 
				
			||||||
hooks for stopping running programs and inspecting programs.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The progs/tests/debugger.c (only in CVS) program is an example of how
 | 
					 | 
				
			||||||
the extension can be used.  Presently, the debugger code and demo code
 | 
					 | 
				
			||||||
is in the same file.  Eventually the debugger code should be moved
 | 
					 | 
				
			||||||
into a reusable module.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
As it is now, the demo lets you set breakpoings in vertex/fragment
 | 
					 | 
				
			||||||
programs, single step, and print intermediate register values.  It's
 | 
					 | 
				
			||||||
basically just a proof of concept.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Directory tree reorganization
 | 
					 | 
				
			||||||
-----------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The directory structure for Mesa has been overhauled to improve its layout.
 | 
					 | 
				
			||||||
All source code for Mesa, GLU, GLUT, etc is now under the src/ directory
 | 
					 | 
				
			||||||
in appropriate subdirectories.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The Mesa source code and drivers has been reorganized under src/mesa/.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
All demonstration programs and tests are now in subdirectories under progs/.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Build System Changes
 | 
					 | 
				
			||||||
--------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The GNU automake/autoconf support has been removed.  As it was, it seldom
 | 
					 | 
				
			||||||
worked on anything but Linux.  The Mesa developers aren't big fans of
 | 
					 | 
				
			||||||
automake/autoconf/libtool and didn't have the time to maintain it.
 | 
					 | 
				
			||||||
If someone wants to contribute new automake/autoconf support (and is
 | 
					 | 
				
			||||||
willing to maintain it), it may be re-incorporated into Mesa, subject
 | 
					 | 
				
			||||||
to some requirements.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The "old style" makefile system has been updated:
 | 
					 | 
				
			||||||
   1. Make-config has been trimmed down to fewer, modern configurations.
 | 
					 | 
				
			||||||
   2. Most of the bin/mklib.* scripts have been rolled into a new "mklib"
 | 
					 | 
				
			||||||
      script that works on all sorts of systems.  There are probably some
 | 
					 | 
				
			||||||
      bugs in it, but it's been tested on Linux, SunOS 5.8 and IRIX 6.5.
 | 
					 | 
				
			||||||
      Improvements/contributes are greatly appreciated.
 | 
					 | 
				
			||||||
   3. The Makefile.X11 files have been cleaned up in various ways
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Source File Changes
 | 
					 | 
				
			||||||
-------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The mmath.[ch] files are obsolete.  Their contents have been moved
 | 
					 | 
				
			||||||
into the imports.[ch] and macros.[ch] files.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The files related to vertex and fragment programming have changed.
 | 
					 | 
				
			||||||
Old files:
 | 
					 | 
				
			||||||
	vpexec.[ch]
 | 
					 | 
				
			||||||
	vpparse.[ch]
 | 
					 | 
				
			||||||
	vpstate.[ch]
 | 
					 | 
				
			||||||
New files:
 | 
					 | 
				
			||||||
	program.[ch]              - generic ARB/NV program code
 | 
					 | 
				
			||||||
	arbprogram.[ch]           - ARB program API functions
 | 
					 | 
				
			||||||
	nvprogram.[ch]            - NV program API functions
 | 
					 | 
				
			||||||
	nvvertprog.h              - NV vertex program definitions
 | 
					 | 
				
			||||||
	nvfragprog.h              - NV fragment program definitions
 | 
					 | 
				
			||||||
	nvvertparse.[ch]          - NV vertex program parser
 | 
					 | 
				
			||||||
	nvfragparse.[ch]          - NV fragment program parser
 | 
					 | 
				
			||||||
	nvvertexec.[ch]           - NV vertex program execution
 | 
					 | 
				
			||||||
	swrast/s_nvfragprog.[ch]  - NV fragment program execution
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Removed files:
 | 
					 | 
				
			||||||
	swrast/s_histogram.[ch] - moved into src/histogram.c
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Other New files:
 | 
					 | 
				
			||||||
	bufferobj.[ch]		- GL_ARB_vertex_buffer_object functions
 | 
					 | 
				
			||||||
	version.h		- defines the Mesa version info
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Other Changes
 | 
					 | 
				
			||||||
-------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The ctx->Driver.CreateTexture function has been removed - it wasn't used.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New device driver hook functions:
 | 
					 | 
				
			||||||
   NewTextureObject   - used to allocate struct gl_texture_objects
 | 
					 | 
				
			||||||
   NewTextureImage    - used to allocate struct gl_texture_images
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New ctx->Texture._EnabledCoordUnits field:
 | 
					 | 
				
			||||||
   With the addition of GL_NV_fragment_program we may need to interpolate
 | 
					 | 
				
			||||||
   various sets of texture coordinates even when the corresponding texture
 | 
					 | 
				
			||||||
   unit is not enabled.  That is, glEnable(GL_TEXTURE_xD) may never get
 | 
					 | 
				
			||||||
   called but we still may have to interpolate texture coordinates across
 | 
					 | 
				
			||||||
   triangles so that the fragment program will get them.
 | 
					 | 
				
			||||||
   This new field indicates which sets of texture coordinates are needed.
 | 
					 | 
				
			||||||
   If a bit is set in the ctx->Texture._EnabledUnits bitmask is set, the
 | 
					 | 
				
			||||||
   same bit MUST be set in ctx->Texture._EnabledCoordUnits.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The ctx->_TriangleCaps field is deprecated.
 | 
					 | 
				
			||||||
   Instead of testing the DD_* bits in _TriangleCaps, you should instead
 | 
					 | 
				
			||||||
   directly test the relevant state variables, or use one of the helper
 | 
					 | 
				
			||||||
   functions like NEED_SECONDARY_COLOR() at the bottom of context.h
 | 
					 | 
				
			||||||
   While testing _TriangleCaps bits was fast, it was kludgey, and setting
 | 
					 | 
				
			||||||
   the bits in the first place could be error prone.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
To Do
 | 
					 | 
				
			||||||
-----
 | 
					 | 
				
			||||||
Add screen-awareness to fakeglx.c
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Device Driver Status
 | 
					 | 
				
			||||||
--------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
A number of Mesa's software drivers haven't been actively maintained for
 | 
					 | 
				
			||||||
some time.  We rely on volunteers to maintain many of these drivers.
 | 
					 | 
				
			||||||
Here's the current status of all included drivers:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Driver			Status
 | 
					 | 
				
			||||||
----------------------	---------------------
 | 
					 | 
				
			||||||
XMesa (Xlib)		implements OpenGL 1.4
 | 
					 | 
				
			||||||
OSMesa (off-screen)	implements OpenGL 1.4
 | 
					 | 
				
			||||||
FX (3dfx Voodoo1/2)	implements OpenGL 1.3
 | 
					 | 
				
			||||||
SVGA			implements OpenGL 1.3
 | 
					 | 
				
			||||||
Wind River UGL		implements OpenGL 1.3
 | 
					 | 
				
			||||||
Windows/Win32		implements OpenGL 1.4
 | 
					 | 
				
			||||||
DJGPP			implements OpenGL 1.4
 | 
					 | 
				
			||||||
GGI			implements OpenGL 1.3
 | 
					 | 
				
			||||||
BeOS			implements OpenGL 1.4
 | 
					 | 
				
			||||||
Allegro			needs updating
 | 
					 | 
				
			||||||
D3D			needs updating
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Note: supporting OpenGL 1.4 (vs. 1.3 or 1.2) usually only requires that the
 | 
					 | 
				
			||||||
driver call the _mesa_enable_1_4_extensions() function.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
----------------------------------------------------------------------
 | 
					 | 
				
			||||||
							
								
								
									
										535
									
								
								docs/VERSIONS
									
									
									
									
									
								
							
							
						
						
									
										535
									
								
								docs/VERSIONS
									
									
									
									
									
								
							@@ -1,3 +1,4 @@
 | 
				
			|||||||
 | 
					$Id: VERSIONS,v 1.13.2.24 2000/03/23 00:12:41 brianp Exp $
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Mesa Version History
 | 
					Mesa Version History
 | 
				
			||||||
@@ -665,511 +666,45 @@ Mesa Version History
 | 
				
			|||||||
	- added demos/gloss.c
 | 
						- added demos/gloss.c
 | 
				
			||||||
	- added xdemos/glxdpyinfo.c
 | 
						- added xdemos/glxdpyinfo.c
 | 
				
			||||||
	- added GLX_ARB_get_proc_address extension
 | 
						- added GLX_ARB_get_proc_address extension
 | 
				
			||||||
	- rewritten glTexImage code paths (faster, less memory, bug fixes)
 | 
					    Bug fixes:
 | 
				
			||||||
    Bug Fixes:
 | 
					 | 
				
			||||||
	- several vertex array bug fixes
 | 
						- several vertex array bug fixes
 | 
				
			||||||
	- overlapping glCopyPixels with pixel zooming now works
 | 
						- overlapping glCopyPixels with pixel zooming now works
 | 
				
			||||||
	- glXUseXFont() bitmaps were vertically shifted by one pixel
 | 
						- glXUseXFont() bitmaps were vertically shifted by one pixel
 | 
				
			||||||
	- glCopyPixels with pixel zooming now works
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
3.2 final  April 24, 2000
 | 
					3.2 beta 1 March 23, 2000
 | 
				
			||||||
    Bug fixes:
 | 
					    Bug fixes:
 | 
				
			||||||
	- fixed memcpy bugs in span.c
 | 
						- mixed drawing of lines and bitmaps sometimes had wrong colors
 | 
				
			||||||
	- fixed missing glEnd problem in demos/tessdemo.c
 | 
						- added missing glHintPGI() function
 | 
				
			||||||
	- fixed bug when clearing 24bpp Ximages
 | 
						- fixed a polygon culling bug
 | 
				
			||||||
	- fixed clipping problem found in Unreal Tournament
 | 
						- fixed bugs in gluPartialDisk()
 | 
				
			||||||
	- fixed Loki's "ice bug" and "crazy triangles" seen in Heretic2
 | 
						- Z values in selection mode were wrong
 | 
				
			||||||
	- fixed Loki's 3dfx RGB vs BGR bug
 | 
						- added missing tokens:
 | 
				
			||||||
	- fixed Loki's 3dfx smooth/flat shading bug in SoF
 | 
							GL_SMOOTH_POINT_SIZE_RANGE
 | 
				
			||||||
 | 
							GL_SMOOTH_POINT_SIZE_GRANULARITY
 | 
				
			||||||
 | 
							GL_SMOOTH_LINE_WIDTH_RANGE
 | 
				
			||||||
 | 
							GL_SMOOTH_LINE_WIDTH_GRANULARITY
 | 
				
			||||||
 | 
							GL_ALIASED_POINT_SIZE_RANGE
 | 
				
			||||||
 | 
							GL_ALIASED_LINE_WIDTH_RANGE
 | 
				
			||||||
 | 
						- fixed glCopyPixels when copying from back to front buffer
 | 
				
			||||||
 | 
						- GL_EXT_compiled_vertex_array tokens had _SGI suffix instead of _EXT
 | 
				
			||||||
 | 
						- glDrawRangeElements(GL_LINES, 0, 1, 2, type, indices) was broken
 | 
				
			||||||
 | 
						- glDeleteTextures() didn't decrement reference count correctly
 | 
				
			||||||
 | 
						- GL_SRCA_ALPHA_SATURATE blend mode didn't work correctly
 | 
				
			||||||
 | 
						- Actual depth of transformation matrix stacks was off by one
 | 
				
			||||||
 | 
						- 24bpp visuals didn't address pixels correctly
 | 
				
			||||||
 | 
						- mipmap level of detail (lambda) calculation simplified, more accurate
 | 
				
			||||||
 | 
						- 101691 - Polygon clipping and GL_LINE
 | 
				
			||||||
 | 
						- 101928 - Polygon clipping and GL_LINE (same fix as above)
 | 
				
			||||||
 | 
						- 101808 - Non-glVertexArrays tristrip bug
 | 
				
			||||||
 | 
						- 101971 - find_last_3f on Dec OSF (worked around)
 | 
				
			||||||
 | 
						- 102369 - segv on dec osf (possibly a duplicate of the above)
 | 
				
			||||||
 | 
						- 102893 - orientations of modelview cause segfault
 | 
				
			||||||
 | 
					    New:
 | 
				
			||||||
 | 
						- updated SVGA Linux driver
 | 
				
			||||||
 | 
						- added the MESA_FX_NO_SIGNALS env var, see docs/README.3DFX
 | 
				
			||||||
 | 
						- build libGLw.a (Xt/OpenGL drawing area widget) library by default
 | 
				
			||||||
 | 
						- changed -O2 to -O3 for a number of gcc configs
 | 
				
			||||||
    Changes:
 | 
					    Changes:
 | 
				
			||||||
	- updated docs/README file
 | 
					        - glXCopyContext's mask parameter is now unsigned long, per GLX spec
 | 
				
			||||||
	- use bcopy() optimizations on FreeBSD
 | 
					 | 
				
			||||||
	- re-enabled the optimized persp_textured_triangle() function
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
3.2.1  July 19, 2000
 | 
					 | 
				
			||||||
    Bug fixes:
 | 
					 | 
				
			||||||
	- gluBuild2DMipmaps() didn't accept GL_BGRA
 | 
					 | 
				
			||||||
	- Fixed compile/makefile problems on IRIX
 | 
					 | 
				
			||||||
	- fixed segfault in 3dfx driver when using GL selection/feedback
 | 
					 | 
				
			||||||
	- no longer cull very, very tiny triangles
 | 
					 | 
				
			||||||
	- blending w/ drawbuffer==GL_FRONT_BACK caused segfault (sw rendering)
 | 
					 | 
				
			||||||
	- fixed Motif detection code in widgets-mesa/configure.in
 | 
					 | 
				
			||||||
	- glColorMaterial and glMaterial updates to emissive and ambient
 | 
					 | 
				
			||||||
	  didn't always work right
 | 
					 | 
				
			||||||
	- Specular highlights weren't always in the right place
 | 
					 | 
				
			||||||
	- clipped GL_LINE mode polygons had interior lines appear
 | 
					 | 
				
			||||||
	- blend term GL_ONE_MINUS_CONSTANT_ALPHA was broken
 | 
					 | 
				
			||||||
	- GL_NICEST fog didn't always work with flat shading
 | 
					 | 
				
			||||||
	- glRect commands in display lists were sometimes miscolored
 | 
					 | 
				
			||||||
	- Line Z offset didn't always work
 | 
					 | 
				
			||||||
	- fixed texgen normal vector problem (gloss's teapot)
 | 
					 | 
				
			||||||
	- numerous GL conformance bugs fixed
 | 
					 | 
				
			||||||
    Changes:
 | 
					 | 
				
			||||||
	- glColorMask(false, false, false, false) handled better/faster
 | 
					 | 
				
			||||||
	- reverted to old GLU polygon tessellator, GLU 1.1
 | 
					 | 
				
			||||||
	- updated Win32 build files
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
3.3  July 21, 2000
 | 
					 | 
				
			||||||
    New:
 | 
					 | 
				
			||||||
	- antialiased triangles now implemented
 | 
					 | 
				
			||||||
	- GL_EXT_texture_env_add texture mode extension
 | 
					 | 
				
			||||||
	- GLX 1.3 API
 | 
					 | 
				
			||||||
	- support for separate draw/read buffers (ie GL_SGI_make_current_read)
 | 
					 | 
				
			||||||
	- thread-safe API dispath
 | 
					 | 
				
			||||||
	- improved glxinfo program
 | 
					 | 
				
			||||||
	- demos/texdown program to measure texture download performance
 | 
					 | 
				
			||||||
	- glext.h header file
 | 
					 | 
				
			||||||
	- demos/geartrain program
 | 
					 | 
				
			||||||
	- GL_EXT_texture_lod_bias extension
 | 
					 | 
				
			||||||
	- demos/lodbias program
 | 
					 | 
				
			||||||
	- further optimized glRead/DrawPixels for 16-bit TrueColor X visuals
 | 
					 | 
				
			||||||
	- GLX_EXT_visual_rating extension (a no-op, however)
 | 
					 | 
				
			||||||
	- GL_HP_occlusion_test extension (for X and OS/Mesa drivers)
 | 
					 | 
				
			||||||
	- demos/occlude program
 | 
					 | 
				
			||||||
	- GL_SGIS_pixel_texture and GL_SGIX_pixel_texture extensions
 | 
					 | 
				
			||||||
	- demos/pixeltex program
 | 
					 | 
				
			||||||
	- GL_SGI_color_matrix extension
 | 
					 | 
				
			||||||
	- GL_SGI_color_table extension
 | 
					 | 
				
			||||||
	- GL_EXT_histogram extension
 | 
					 | 
				
			||||||
	- GL_ARB_texture_cube_map extension
 | 
					 | 
				
			||||||
	- added xdemos/glxheads and xdemos/manywin
 | 
					 | 
				
			||||||
	- demos/texenv.c demo
 | 
					 | 
				
			||||||
	- GL_EXT_texture_env_combine extension (by Holger Waechtler)
 | 
					 | 
				
			||||||
	- Xlib driver is now thread-safe (see xdemos/glthreads)
 | 
					 | 
				
			||||||
    Bug Fixes:
 | 
					 | 
				
			||||||
	- various GL conformance failures fixed since 3.2.1
 | 
					 | 
				
			||||||
    Changes:
 | 
					 | 
				
			||||||
	- 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
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
3.4.2  May 17, 2001
 | 
					 | 
				
			||||||
    Bug fixes:
 | 
					 | 
				
			||||||
	- deleting the currently bound texture could cause bad problems
 | 
					 | 
				
			||||||
	- using fog could result in random vertex alpha values
 | 
					 | 
				
			||||||
	- AA triangle rendering could touch pixels outside right window bound
 | 
					 | 
				
			||||||
	- fixed byteswapping problem in clear_32bit_ximage() function
 | 
					 | 
				
			||||||
	- fixed bugs in wglUseFontBitmapsA(), by Frank Warmerdam
 | 
					 | 
				
			||||||
	- fixed memory leak in glXUseXFont()
 | 
					 | 
				
			||||||
	- fragment sampling in AA triangle function was off by 1/2 pixel
 | 
					 | 
				
			||||||
	- Windows: reading pixels from framebuffer didn't always work
 | 
					 | 
				
			||||||
	- glConvolutionFilter2D could segfault or cause FP exception
 | 
					 | 
				
			||||||
	- fixed segfaults in FX and X drivers when using tex unit 1 but not 0
 | 
					 | 
				
			||||||
	- GL_NAND logicop didn't work right in RGBA mode
 | 
					 | 
				
			||||||
	- fixed a memory corruption bug in vertex buffer reset code
 | 
					 | 
				
			||||||
	- clearing the softwara alpha buffer with scissoring was broken
 | 
					 | 
				
			||||||
	- fixed a few color index mode fog bugs
 | 
					 | 
				
			||||||
	- fixed some bad assertions in color index mode
 | 
					 | 
				
			||||||
	- fixed FX line 'stipple' bug #420091
 | 
					 | 
				
			||||||
	- fixed stencil buffer clear width/height typo
 | 
					 | 
				
			||||||
	- fixed GL error glitches in gl[Client]ActiveTextureARB()
 | 
					 | 
				
			||||||
	- fixed Windows compilation problem in texutil.c
 | 
					 | 
				
			||||||
	- fixed 1/8-pixel AA triangle sampling error
 | 
					 | 
				
			||||||
    Changes:
 | 
					 | 
				
			||||||
	- optimized writing mono-colored pixel spans to X pixmaps
 | 
					 | 
				
			||||||
	- increased max viewport size to 2048 x 2048
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
3.5  June 21, 2001
 | 
					 | 
				
			||||||
    New:
 | 
					 | 
				
			||||||
	- internals of Mesa divided into modular pieces (Keith Whitwell)
 | 
					 | 
				
			||||||
	- 100% OpenGL 1.2 conformance (passes all conformance tests)
 | 
					 | 
				
			||||||
	- new AA line algorithm
 | 
					 | 
				
			||||||
	- GL_EXT_convolution extension
 | 
					 | 
				
			||||||
	- GL_ARB_imaging subset
 | 
					 | 
				
			||||||
	- OSMesaCreateContextExt() function
 | 
					 | 
				
			||||||
	- GL_ARB_texture_env_add extension (same as GL_EXT_texture_env_add)
 | 
					 | 
				
			||||||
	- GL_MAX_TEXTURE_UNITS_ARB now defaults to eight
 | 
					 | 
				
			||||||
	- GL_EXT_fog_coord extension (Keith Whitwell)
 | 
					 | 
				
			||||||
	- GL_EXT_secondary_color extension (Keith Whitwell)
 | 
					 | 
				
			||||||
	- GL_ARB_texture_env_add extension (same as GL_EXT_texture_env_add)
 | 
					 | 
				
			||||||
	- GL_SGIX_depth_texture extension
 | 
					 | 
				
			||||||
	- GL_SGIX_shadow and GL_SGIX_shadow_ambient extensions
 | 
					 | 
				
			||||||
	- demos/shadowtex.c demo of GL_SGIX_depth_texture and GL_SGIX_shadow
 | 
					 | 
				
			||||||
	- GL_ARB_texture_env_combine extension
 | 
					 | 
				
			||||||
	- GL_ARB_texture_env_dot3 extension
 | 
					 | 
				
			||||||
	- GL_ARB_texture_border_clamp (aka GL_SGIS_texture_border_clamp)
 | 
					 | 
				
			||||||
	- OSMesaCreateContextExt() function
 | 
					 | 
				
			||||||
	- libOSMesa.so library, contains the OSMesa driver interface
 | 
					 | 
				
			||||||
	- GL/glxext.h header file for GLX extensions
 | 
					 | 
				
			||||||
	- somewhat faster software texturing, fogging, depth testing
 | 
					 | 
				
			||||||
	- all color-index conformance tests now pass (only 8bpp tested)
 | 
					 | 
				
			||||||
	- SPARC assembly language TCL optimizations (David Miller)
 | 
					 | 
				
			||||||
	- GL_SGIS_generate_mipmap extension
 | 
					 | 
				
			||||||
    Bug Fixes:
 | 
					 | 
				
			||||||
	- fbiRev and tmuRev were unitialized when using Glide3
 | 
					 | 
				
			||||||
	- fixed a few color index mode conformance failures; all pass now
 | 
					 | 
				
			||||||
	- now appling antialiasing coverage to alpha after texturing
 | 
					 | 
				
			||||||
	- colors weren't getting clamped to [0,1] before color table lookup
 | 
					 | 
				
			||||||
	- fixed RISC alignment errors caused by COPY_4UBV macro
 | 
					 | 
				
			||||||
	- drawing wide, flat-shaded lines could cause a segfault
 | 
					 | 
				
			||||||
	- vertices now snapped to 1/16 pixel to fix rendering of tiny triangles
 | 
					 | 
				
			||||||
    Changes:
 | 
					 | 
				
			||||||
	- SGI's Sample Implementation (SI) 1.3 GLU library replaces Mesa GLU
 | 
					 | 
				
			||||||
	- new libOSMesa.so library, contains the OSMesa driver interface
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
4.0  October 22, 2001
 | 
					 | 
				
			||||||
    New:
 | 
					 | 
				
			||||||
	- Mesa 4.0 implements the OpenGL 1.3 specification
 | 
					 | 
				
			||||||
	- GL_IBM_rasterpos_clip extension
 | 
					 | 
				
			||||||
	- GL_EXT_texture_edge_clamp extension (aka GL_SGIS_texture_edge_clamp)
 | 
					 | 
				
			||||||
	- GL_ARB_texture_mirrored_repeat extension
 | 
					 | 
				
			||||||
	- WindML UGL driver (Stephane Raimbault)
 | 
					 | 
				
			||||||
	- added OSMESA_MAX_WIDTH/HEIGHT queries
 | 
					 | 
				
			||||||
	- attempted compiliation fixes for Solaris 5, 7 and 8
 | 
					 | 
				
			||||||
	- updated glext.h and glxext.h files
 | 
					 | 
				
			||||||
	- updated Windows driver (Karl Schultz)
 | 
					 | 
				
			||||||
    Bug fixes:
 | 
					 | 
				
			||||||
	- added some missing GLX 1.3 tokens to include/GL/glx.h
 | 
					 | 
				
			||||||
	- GL_COLOR_MATRIX changes weren't recognized by teximage functions
 | 
					 | 
				
			||||||
	- glCopyPixels with scale and bias was broken
 | 
					 | 
				
			||||||
	- glRasterPos with lighting could segfault
 | 
					 | 
				
			||||||
	- glDeleteTextures could leave a dangling pointer
 | 
					 | 
				
			||||||
	- Proxy textures for cube maps didn't work
 | 
					 | 
				
			||||||
	- fixed a number of 16-bit color channel bugs
 | 
					 | 
				
			||||||
	- fixed a few minor memory leaks
 | 
					 | 
				
			||||||
	- GLX context sharing was broken in 3.5
 | 
					 | 
				
			||||||
	- fixed state-update bugs in glPopClientAttrib()
 | 
					 | 
				
			||||||
	- fixed glDrawRangeElements() bug
 | 
					 | 
				
			||||||
	- fixed a glPush/PopAttrib() bug related to texture binding
 | 
					 | 
				
			||||||
	- flat-shaded, textured lines were broken
 | 
					 | 
				
			||||||
	- fixed a dangling pointer problem in the XMesa code (Chris Burghart)
 | 
					 | 
				
			||||||
	- lighting didn't always produce the correct alpha value
 | 
					 | 
				
			||||||
	- fixed 3DNow! code to not read past end of arrays (Andrew Lewycky)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
4.0.1 December 17, 2001
 | 
					 | 
				
			||||||
    New:
 | 
					 | 
				
			||||||
	- better sub-pixel sample positions for AA triangles (Ray Tice)
 | 
					 | 
				
			||||||
	- slightly faster blending for (GL_ZERO, GL_ONE) and (GL_ONE, GL_ZERO)
 | 
					 | 
				
			||||||
    Bug fixes:
 | 
					 | 
				
			||||||
	- added missing break statements in glGet*() for multisample cases
 | 
					 | 
				
			||||||
	- fixed uninitialized hash table mutex bug (display lists / texobjs)
 | 
					 | 
				
			||||||
	- fixed bad teximage error check conditional (bug 476846)
 | 
					 | 
				
			||||||
	- fixed demos readtex.c compilation problem on Windows (Karl Schultz)
 | 
					 | 
				
			||||||
	- added missing glGet() query for GL_MAX_TEXTURE_LOD_BIAS_EXT
 | 
					 | 
				
			||||||
	- silence some compiler warnings (gcc 2.96)
 | 
					 | 
				
			||||||
	- enable the #define GL_VERSION_1_3 in GL/gl.h
 | 
					 | 
				
			||||||
	- added GL 1.3 and GLX 1.4 entries to gl_mangle.h and glx_mangle.h
 | 
					 | 
				
			||||||
	- fixed glu.h typedef problem found with MSDev 6.0
 | 
					 | 
				
			||||||
	- build libGL.so with -Bsymbolic (fixes bug found with Chromium)
 | 
					 | 
				
			||||||
	- added missing 'const' to glXGetContextIDEXT() in glxext.h
 | 
					 | 
				
			||||||
	- fixed a few glXGetProcAddress() errors (texture compression, etc)
 | 
					 | 
				
			||||||
	- fixed start index bug in compiled vertex arrays (Keith)
 | 
					 | 
				
			||||||
	- fixed compilation problems in src/SPARC/glapi_sparc.S
 | 
					 | 
				
			||||||
	- fixed triangle strip "parity" bug found in VTK medical1 demo (Keith)
 | 
					 | 
				
			||||||
	- use glXGetProcAddressARB in GLUT to avoid extension linking problems
 | 
					 | 
				
			||||||
	- provoking vertex of flat-shaded, color-index triangles was wrong
 | 
					 | 
				
			||||||
	- fixed a few display list bugs (GLUT walker, molecule, etc) (Keith)
 | 
					 | 
				
			||||||
	- glTexParameter didn't flush the vertex buffer (Ray Tice)
 | 
					 | 
				
			||||||
	- feedback attributes for glDraw/CopyPixels and glBitmap were wrong
 | 
					 | 
				
			||||||
	- fixed bug in normal length caching (ParaView lighting bug)
 | 
					 | 
				
			||||||
	- fixed separate_specular color bug found in Chimera (18 Dec 2001)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
4.0.2  April 2, 2002
 | 
					 | 
				
			||||||
    New:
 | 
					 | 
				
			||||||
	- New DOS (DJGPP) driver written by Daniel Borca
 | 
					 | 
				
			||||||
	- New driver interface functions for TCL drivers (such as Radeon DRI)
 | 
					 | 
				
			||||||
	- GL_RENDERER string returns "Mesa Offscreen16" or "Mesa Offscreen32"
 | 
					 | 
				
			||||||
	  if using deep color channels
 | 
					 | 
				
			||||||
	- latest GL/glext.h and GL/glxext.h headers from SGI
 | 
					 | 
				
			||||||
    Bug fixes:
 | 
					 | 
				
			||||||
	- GL_BLEND with non-black texture env color wasn't always correct
 | 
					 | 
				
			||||||
	- GL_REPLACE with GL_RGB texture format wasn't always correct (alpha)
 | 
					 | 
				
			||||||
	- glTexEnviv( pname != GL_TEXTURE_ENV_COLOR ) was broken
 | 
					 | 
				
			||||||
	- glReadPixels was sometimes mistakenly clipped by the scissor box
 | 
					 | 
				
			||||||
	- glDraw/ReadPixels didn't catch all the errors that they should have
 | 
					 | 
				
			||||||
	- Fixed 24bpp rendering problem in Windows driver (Karl Schultz)
 | 
					 | 
				
			||||||
	- 16-bit GLchan mode fixes (m_trans_tmp.h, s_triangle.c)
 | 
					 | 
				
			||||||
	- Fixed 1-bit float->int conversion bug in glDrawPixels(GL_DEPTH_COMP)
 | 
					 | 
				
			||||||
	- glColorMask as sometimes effecting glXSwapBuffers()
 | 
					 | 
				
			||||||
	- fixed a potential bug in XMesaGarbageCollect()
 | 
					 | 
				
			||||||
	- N threads rendering into one window didn't work reliably
 | 
					 | 
				
			||||||
	- glCopyPixels didn't work for deep color channels
 | 
					 | 
				
			||||||
	- improved 8 -> 16bit/channel texture image conversion (Gerk Huisma)
 | 
					 | 
				
			||||||
	- glPopAttrib() didn't correctly restore user clip planes
 | 
					 | 
				
			||||||
	- user clip planes failed for some perspective projections (Chromium)
 | 
					 | 
				
			||||||
    Known bugs:
 | 
					 | 
				
			||||||
	- mipmap LOD computation
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
4.0.3  June 25, 2002
 | 
					 | 
				
			||||||
    New:
 | 
					 | 
				
			||||||
	- updated GL/glext.h file (version 15)
 | 
					 | 
				
			||||||
	- corrected MMX blend code (Jose Fonseca)
 | 
					 | 
				
			||||||
	- support for software-based alpha planes in Windows driver
 | 
					 | 
				
			||||||
	- updated GGI driver (Filip Spacek)
 | 
					 | 
				
			||||||
    Bug fixes:
 | 
					 | 
				
			||||||
	- glext.h had wrong values for GL_DOT3_RGB[A]_EXT tokens
 | 
					 | 
				
			||||||
	- OSMesaMakeCurrent() didn't recognize buffer size changes
 | 
					 | 
				
			||||||
	- assorted conformance fixes for 16-bit/channel rendering
 | 
					 | 
				
			||||||
	- texcombine alpha subtraction mode was broken
 | 
					 | 
				
			||||||
	- fixed lighting bug with non-uniform scaling and display lists
 | 
					 | 
				
			||||||
	- fixed bug when deleting shared display lists
 | 
					 | 
				
			||||||
	- disabled SPARC cliptest assembly code (Mesa bug 544665)
 | 
					 | 
				
			||||||
	- fixed a couple Solaris compilation/link problems
 | 
					 | 
				
			||||||
	- blending clipped glDrawPixels didn't always work
 | 
					 | 
				
			||||||
	- glGetTexImage() didn't accept packed pixel types
 | 
					 | 
				
			||||||
	- glPixelMapu[is]v() could explode given too large of pixelmap
 | 
					 | 
				
			||||||
	- glGetTexParameter[if]v() didn't accept GL_TEXTURE_MAX_ANISOTROPY_EXT
 | 
					 | 
				
			||||||
	- glXCopyContext() could lead to segfaults
 | 
					 | 
				
			||||||
	- glCullFace(GL_FRONT_AND_BACK) didn't work (bug 572665)
 | 
					 | 
				
			||||||
    Changes:
 | 
					 | 
				
			||||||
	- lots of C++ (g++) code clean-ups
 | 
					 | 
				
			||||||
	- lots of T&L updates for the Radeon DRI driver
 | 
					 | 
				
			||||||
    Known bugs:
 | 
					 | 
				
			||||||
	- mipmap LOD computation (fixed for Mesa 4.1)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
4.0.4  October 3, 2002
 | 
					 | 
				
			||||||
    New:
 | 
					 | 
				
			||||||
	- GL_NV_texture_rectangle extension
 | 
					 | 
				
			||||||
	- updated glext.h header (version 17)
 | 
					 | 
				
			||||||
	- updated DOS driver (Daniel Borca)
 | 
					 | 
				
			||||||
	- updated BeOS R5 driver (Philippe Houdoin)
 | 
					 | 
				
			||||||
	- added GL_IBM_texture_mirror_repeat
 | 
					 | 
				
			||||||
	- glxinfo now takes -l option to print interesting OpenGL limits info
 | 
					 | 
				
			||||||
	- GL_MESA_ycbcr_texture extension
 | 
					 | 
				
			||||||
	- GL_APPLE_client_storage extension (for some DRI drivers only)
 | 
					 | 
				
			||||||
	- GL_MESA_pack_invert extension
 | 
					 | 
				
			||||||
    Bug fixes:
 | 
					 | 
				
			||||||
	- fixed GL_LINEAR fog bug by adding clamping
 | 
					 | 
				
			||||||
	- fixed FP exceptions found using Alpha CPU
 | 
					 | 
				
			||||||
	- 3dfx MESA_GLX_FX=window (render to window) didn't work
 | 
					 | 
				
			||||||
	- fixed memory leak in wglCreateContest (Karl Schultz)
 | 
					 | 
				
			||||||
	- define GLAPIENTRY and GLAPI if undefined in glu.h
 | 
					 | 
				
			||||||
	- wglGetProcAddress didn't handle all API functions
 | 
					 | 
				
			||||||
	- when testing for OpenGL 1.2 vs 1.3, check for GL_ARB_texture_cube_map
 | 
					 | 
				
			||||||
	- removed GL_MAX_CONVOLUTION_WIDTH/HEIGHT from glGetInteger/Float/etc()
 | 
					 | 
				
			||||||
	- error checking in compressed tex image functions had some glitches
 | 
					 | 
				
			||||||
	- fixed AIX compile problem in src/config.c
 | 
					 | 
				
			||||||
	- glGetTexImage was using pixel unpacking instead of packing params
 | 
					 | 
				
			||||||
	- auto-mipmap generation for cube maps was incorrect
 | 
					 | 
				
			||||||
    Changes:
 | 
					 | 
				
			||||||
	- max texture units reduced to six to accomodate texture rectangles
 | 
					 | 
				
			||||||
	- removed unfinished GL_MESA_sprite_point extension code
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
4.1  October 29, 2002
 | 
					 | 
				
			||||||
    New:
 | 
					 | 
				
			||||||
	- GL_NV_vertex_program extension
 | 
					 | 
				
			||||||
	- GL_NV_vertex_program1_1 extension
 | 
					 | 
				
			||||||
	- GL_ARB_window_pos extension
 | 
					 | 
				
			||||||
	- GL_ARB_depth_texture extension
 | 
					 | 
				
			||||||
	- GL_ARB_shadow extension
 | 
					 | 
				
			||||||
	- GL_ARB_shadow_ambient extension
 | 
					 | 
				
			||||||
	- GL_EXT_shadow_funcs extension
 | 
					 | 
				
			||||||
	- GL_ARB_point_parameters extension
 | 
					 | 
				
			||||||
	- GL_ARB_texture_env_crossbar
 | 
					 | 
				
			||||||
	- GL_NV_point_sprite extension
 | 
					 | 
				
			||||||
	- GL_NV_texture_rectangle extension
 | 
					 | 
				
			||||||
	- GL_EXT_multi_draw_arrays extension
 | 
					 | 
				
			||||||
	- GL_EXT_stencil_two_side extension
 | 
					 | 
				
			||||||
	- GLX_SGIX_fbconfig and GLX_SGIX_pbuffer extensions
 | 
					 | 
				
			||||||
	- GL_ATI_texture_mirror_once extension (Ian Romanick)
 | 
					 | 
				
			||||||
	- massive overhaul/simplification of software rasterizer module,
 | 
					 | 
				
			||||||
	  many contributions from Klaus Niederkrueger
 | 
					 | 
				
			||||||
	- faster software texturing in some cases (i.e. trilinear filtering)
 | 
					 | 
				
			||||||
	- new OSMesaGetProcAddress() function
 | 
					 | 
				
			||||||
	- more blend modes implemented with MMX code (Jose Fonseca)
 | 
					 | 
				
			||||||
	- added glutGetProcAddress() to GLUT
 | 
					 | 
				
			||||||
	- added GLUT_FPS env var to compute frames/second in glutSwapBuffers()
 | 
					 | 
				
			||||||
	- pbinfo and pbdemo PBuffer programs
 | 
					 | 
				
			||||||
	- glxinfo -v prints transprent pixel info (Gerd Sussner)
 | 
					 | 
				
			||||||
    Bug fixes:
 | 
					 | 
				
			||||||
	- better mipmap LOD computation (prevents excessive blurriness)
 | 
					 | 
				
			||||||
	- OSMesaMakeCurrent() didn't recognize buffer size changes
 | 
					 | 
				
			||||||
	- assorted conformance fixes for 16-bit/channel rendering
 | 
					 | 
				
			||||||
	- texcombine alpha subtraction mode was broken
 | 
					 | 
				
			||||||
	- fixed some blend problems when GLchan==GLfloat (Gerk Huisma)
 | 
					 | 
				
			||||||
	- clamp colors to [0,inf] in OSMesa if GLchan==GLfloat (Gerk Huisma)
 | 
					 | 
				
			||||||
	- fixed divide by zero error in NURBS tessellator (Jon Perry)
 | 
					 | 
				
			||||||
	- fixed GL_LINEAR fog bug by adding clamping
 | 
					 | 
				
			||||||
	- fixed FP exceptions found using Alpha CPU
 | 
					 | 
				
			||||||
	- 3dfx/glide driver render-to-window feature was broken
 | 
					 | 
				
			||||||
	- added missing GLX_TRANSPARENT_RGB token to glx.h
 | 
					 | 
				
			||||||
	- fixed error checking related to paletted textures
 | 
					 | 
				
			||||||
	- fixed reference count error in glDeleteTextures (Randy Fayan)
 | 
					 | 
				
			||||||
    Changes:
 | 
					 | 
				
			||||||
	- New spec file and Python code to generate some GL dispatch files
 | 
					 | 
				
			||||||
	- Glide driver defaults to "no" with autoconf/automake
 | 
					 | 
				
			||||||
	- updated demos/stex3d with new options
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
5.0  November 13, 2002
 | 
					 | 
				
			||||||
    New:
 | 
					 | 
				
			||||||
	- OpenGL 1.4 support (glGetString(GL_VERSION) returns "1.4")
 | 
					 | 
				
			||||||
	- removed some overlooked debugging code
 | 
					 | 
				
			||||||
	- glxinfo updated to support GLX_ARB_multisample
 | 
					 | 
				
			||||||
	- GLUT now support GLX_ARB_multisample
 | 
					 | 
				
			||||||
	- updated DOS driver (Daniel Borca)
 | 
					 | 
				
			||||||
    Bug fixes:
 | 
					 | 
				
			||||||
	- GL_POINT and GL_LINE-mode polygons didn't obey cull state
 | 
					 | 
				
			||||||
	- fixed potential bug in _mesa_align_malloc/calloc()
 | 
					 | 
				
			||||||
	- fixed missing triangle bug when running vertex programs
 | 
					 | 
				
			||||||
	- fixed a few HPUX compilation problems
 | 
					 | 
				
			||||||
	- FX (Glide) driver didn't compile
 | 
					 | 
				
			||||||
	- setting GL_TEXTURE_BORDER_COLOR with glTexParameteriv() didn't work
 | 
					 | 
				
			||||||
	- a few EXT functions, like glGenTexturesEXT, were no-ops
 | 
					 | 
				
			||||||
	- a few OpenGL 1.4 functions like glFogCoord*, glBlendFuncSeparate,
 | 
					 | 
				
			||||||
	  glMultiDrawArrays and glMultiDrawElements were missing
 | 
					 | 
				
			||||||
	- glGet*(GL_ACTIVE_STENCIL_FACE_EXT) was broken
 | 
					 | 
				
			||||||
	- Pentium 4 Mobile was mistakenly identified as having 3DNow!
 | 
					 | 
				
			||||||
	- fixed one-bit error in point/line fragment Z calculation
 | 
					 | 
				
			||||||
	- fixed potential segfault in fakeglx code
 | 
					 | 
				
			||||||
	- fixed color overflow problem in DOT3 texture env mode
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
5.0.1  March 30, 2003
 | 
					 | 
				
			||||||
    New:
 | 
					 | 
				
			||||||
	- DOS driver updates from Daniel Borca
 | 
					 | 
				
			||||||
	- updated GL/gl_mangle.h file (Bill Hoffman)
 | 
					 | 
				
			||||||
    Bug fixes:
 | 
					 | 
				
			||||||
	- auto mipmap generation for cube maps was broken (bug 641363)
 | 
					 | 
				
			||||||
	- writing/clearing software alpha channels was unreliable
 | 
					 | 
				
			||||||
	- minor compilation fixes for OS/2 (Evgeny Kotsuba)
 | 
					 | 
				
			||||||
	- fixed some bad assertions found with shadowtex demo
 | 
					 | 
				
			||||||
	- fixed error checking bug in glCopyTexSubImage2D (bug 659020)
 | 
					 | 
				
			||||||
	- glRotate(angle, -x, 0, 0) was incorrect (bug 659677)
 | 
					 | 
				
			||||||
	- fixed potential segfault in texture object validation (bug 659012)
 | 
					 | 
				
			||||||
	- fixed some bogus code in _mesa_test_os_sse_exception_support (Linus)
 | 
					 | 
				
			||||||
	- fix fog stride bug in tnl code for h/w drivers (Michel Danzer)
 | 
					 | 
				
			||||||
	- fixed glActiveTexture / glMatrixMode(GL_TEXTURE) bug (#669080)
 | 
					 | 
				
			||||||
	- glGet(GL_CURRENT_SECONDARY_COLOR) should return 4 values, not 3
 | 
					 | 
				
			||||||
	- fixed compilation problem on Solaris7/x86 (bug 536406)
 | 
					 | 
				
			||||||
	- fixed prefetch bug in 3DNow! code (Felix Kuhling)
 | 
					 | 
				
			||||||
	- fixed NeXT build problem (FABSF macro)
 | 
					 | 
				
			||||||
	- glDrawPixels Z values when glPixelZoom!=1 were invalid (bug 687811)
 | 
					 | 
				
			||||||
	- zoomed glDraw/CopyPixels with clipping sometimes failed (bug 689964)
 | 
					 | 
				
			||||||
	- AA line and triangle Z values are now rounded, not truncated
 | 
					 | 
				
			||||||
	- fixed color interpolation bug when GLchan==GLfloat (bug 694461)
 | 
					 | 
				
			||||||
	- glArePrograms/TexturesResident() wasn't 100% correct (Jose Fonseca)
 | 
					 | 
				
			||||||
	- fixed a minor GL_COLOR_MATERIAL bug
 | 
					 | 
				
			||||||
	- NV vertex program EXP instruction was broken
 | 
					 | 
				
			||||||
	- glColorMask misbehaved with X window / pixmap rendering
 | 
					 | 
				
			||||||
	- fix autoconf/libtool GLU C++ linker problem on Linux (a total hack)
 | 
					 | 
				
			||||||
	- attempt to fix GGI compilation problem when MesaDemos not present
 | 
					 | 
				
			||||||
	- NV vertex program ARL-relative fetches didn't work
 | 
					 | 
				
			||||||
    Changes:
 | 
					 | 
				
			||||||
	- use glPolygonOffset in gloss demo to avoid z-fighting artifacts
 | 
					 | 
				
			||||||
	- updated winpos and pointblast demos to use ARB extensions
 | 
					 | 
				
			||||||
	- disable SPARC normal transformation code (bug 673938)
 | 
					 | 
				
			||||||
	- GLU fixes for OS/2 (Evgeny Kotsuba)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
5.0.2  September 5, 2003
 | 
					 | 
				
			||||||
    Bug fixes:
 | 
					 | 
				
			||||||
	- fixed texgen problem causing texcoord's Q to be zero (stex3d)
 | 
					 | 
				
			||||||
	- default GL_TEXTURE_COMPARE_MODE_ARB was wrong
 | 
					 | 
				
			||||||
	- GL_CURRENT_MATRIX_NV query was wrong
 | 
					 | 
				
			||||||
	- GL_CURRENT_MATRIX_STACK_DEPTH_NV query was off by one
 | 
					 | 
				
			||||||
	- GL_LIST_MODE query wasn't correct
 | 
					 | 
				
			||||||
	- GL_FOG_COORDINATE_SOURCE_EXT query wasn't supported
 | 
					 | 
				
			||||||
	- GL_SECONDARY_COLOR_ARRAY_SIZE_EXT query returned wrong value
 | 
					 | 
				
			||||||
	- blended, wide lines didn't always work correctly (bug 711595)
 | 
					 | 
				
			||||||
	- glVertexAttrib4svNV w component was always 1
 | 
					 | 
				
			||||||
	- fixed bug in GL_IBM_rasterpos_clip (missing return)
 | 
					 | 
				
			||||||
	- GL_DEPTH_TEXTURE_MODE = GL_ALPHA didn't work correctly
 | 
					 | 
				
			||||||
	- a few Solaris compilation fixes
 | 
					 | 
				
			||||||
	- fixed glClear() problem for DRI drivers (non-existant stencil, etc)
 | 
					 | 
				
			||||||
	- fixed int/REAL mixup in GLU NURBS curve evaluator (Eric Cazeaux)
 | 
					 | 
				
			||||||
	- fixed delete [] bug in SI GLU (bug 721765) (Diego Santa Cruz)
 | 
					 | 
				
			||||||
	- glFog() didn't clamp fog colors
 | 
					 | 
				
			||||||
	- fixed bad float/int conversion for GL_TEXTURE_PRIORITY in the
 | 
					 | 
				
			||||||
	  gl[Get]TexParameteri[v] functions
 | 
					 | 
				
			||||||
	- fixed invalid memory references in glTexGen functions (bug 781602)
 | 
					 | 
				
			||||||
	- integer-valued color arrays weren't handled correctly
 | 
					 | 
				
			||||||
	- glDrawPixels(GL_DEPTH_COMPONENT) with glPixelZoom didn't work
 | 
					 | 
				
			||||||
	- GL_EXT_texture_lod_bias is part of 1.4, overlooked in 5.0.1
 | 
					 | 
				
			||||||
    Changes:
 | 
					 | 
				
			||||||
	- build GLUT with -fexceptions so C++ apps propogate exceptions
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
5.1  Month day, 2003  (NOT RELEASED YET)
 | 
					 | 
				
			||||||
    New:
 | 
					 | 
				
			||||||
	- reorganized directory tree
 | 
					 | 
				
			||||||
	- GL_ATI_texture_env_combine3 extension (Ian Romanick)
 | 
					 | 
				
			||||||
	- GL_SGI_texture_color_table extension (Eric Plante)
 | 
					 | 
				
			||||||
	- GL_NV_fragment_program extension
 | 
					 | 
				
			||||||
	- GL_NV_light_max_exponent extension
 | 
					 | 
				
			||||||
	- GL_EXT_texture_rectangle (identical to GL_NV_texture_rectangle)
 | 
					 | 
				
			||||||
	- GL_ARB_occlusion_query extension
 | 
					 | 
				
			||||||
	- GL_ARB_point_sprite extension
 | 
					 | 
				
			||||||
	- GL_ARB_texture_non_power_of_two extension
 | 
					 | 
				
			||||||
	- GL_IBM_multimode_draw_arrays extension
 | 
					 | 
				
			||||||
	- GL_EXT_texture_mirror_clamp extension (Ian Romanick)
 | 
					 | 
				
			||||||
	- GL_ARB_vertex_buffer_object extension
 | 
					 | 
				
			||||||
	- new X86 feature detection code (Petr Sebor)
 | 
					 | 
				
			||||||
	- less memory used for display lists and vertex buffers
 | 
					 | 
				
			||||||
	- demo of per-pixel lighting with a fragment program (demos/fplight.c)
 | 
					 | 
				
			||||||
	- new version (18) of glext.h header
 | 
					 | 
				
			||||||
    Bug fixes:
 | 
					 | 
				
			||||||
	- really enable OpenGL 1.4 features in DOS driver.
 | 
					 | 
				
			||||||
	- fixed issues in glDrawPixels and glCopyPixels for very wide images
 | 
					 | 
				
			||||||
	- glPixelMapf/ui/usv()'s size parameter is GLsizei, not GLint
 | 
					 | 
				
			||||||
    Changes:
 | 
					 | 
				
			||||||
	- dropped API trace feature (src/Trace/)
 | 
					 | 
				
			||||||
	- documentation overhaul.  merged with website content.  more html.
 | 
					 | 
				
			||||||
	- glxgears.c demo updated to use GLX swap rate extensions
 | 
					 | 
				
			||||||
	- glTexImage1/2/3D now allows width/height/depth = 0
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,15 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<title>Banner</title>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<body text="#ffffff" bgcolor="#aa4444">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<center>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<font size="5">The Mesa 3D Graphics Library</font>
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
</center>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
@@ -1,35 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Mesa Bug Reporting</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Bug Database</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Bug reports can be filed in the <a
 | 
					 | 
				
			||||||
href="http://sourceforge.net/bugs/?group_id=3" target="_parent">Bug
 | 
					 | 
				
			||||||
Database</a> on sourceforge.net. Please follow these guidelines:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li>Make sure you're using the most recent version of Mesa
 | 
					 | 
				
			||||||
<li>Make sure your bug isn't already reported
 | 
					 | 
				
			||||||
<li>Include as much information as possible in the report
 | 
					 | 
				
			||||||
<li>Provide a simple GLUT-based test program if possible
 | 
					 | 
				
			||||||
<li>Check back for follow-ups to the report
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Bug reports will automatically be forwarded to the Mesa developer's list.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The easier a bug is to reproduce, the sooner it will be fixed.
 | 
					 | 
				
			||||||
Please do everything you can to facilitate quickly fixing bugs.
 | 
					 | 
				
			||||||
If your bug report is vague or your test program doesn't compile
 | 
					 | 
				
			||||||
easily, the problem may not be fixed very quickly.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</BODY>
 | 
					 | 
				
			||||||
</HTML>
 | 
					 | 
				
			||||||
@@ -1,693 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Conformance</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Conformance</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The SGI OpenGL conformance tests verify correct operation of OpenGL
 | 
					 | 
				
			||||||
implementations.  I, Brian Paul, have been given a copy of the tests
 | 
					 | 
				
			||||||
for testing Mesa.  The tests are not publically available.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
This file has the latest results of testing Mesa with the OpenGL 1.2
 | 
					 | 
				
			||||||
conformance tests.  Testing with the preliminary OpenGL 1.3 tests has
 | 
					 | 
				
			||||||
also been done.  Mesa passes all the 1.3 tests.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The tests were run using the software X11 device driver on 24-bpp
 | 
					 | 
				
			||||||
and 16-bpp displays.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Mesa 4.0 and later pass all conformance tests at all path levels.
 | 
					 | 
				
			||||||
Note that this says nothing about the conformance of hardware drivers
 | 
					 | 
				
			||||||
based upon Mesa.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COVERAGE TESTS
 | 
					 | 
				
			||||||
--------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Test that all API functions accept the legal parameters and reject
 | 
					 | 
				
			||||||
illegal parameters.  The result of each test is either pass or fail.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
% covgl
 | 
					 | 
				
			||||||
OpenGL Coverage Test.
 | 
					 | 
				
			||||||
Version 1.2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
covgl passed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
covgl passed at 1.1 level.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
covgl passed at 1.2 level.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
covgl passed for ARB_multitexture.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
% covglu
 | 
					 | 
				
			||||||
OpenGL GLU Coverage Test.
 | 
					 | 
				
			||||||
Version 1.3
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
covglu passed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
covglu passed at 1.1 level.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
% covglx
 | 
					 | 
				
			||||||
OpenGL X Coverage Test.
 | 
					 | 
				
			||||||
Version 1.1.1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
covglx passed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
% primtest -v
 | 
					 | 
				
			||||||
Open GL Primitives Test.
 | 
					 | 
				
			||||||
Version 1.2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[lots of output deleted]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
292159 Combinations.
 | 
					 | 
				
			||||||
primtest passed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL CONFORMANCE TEST
 | 
					 | 
				
			||||||
===================
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Render test images, read them back, then test for expected results.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
----------------------------------------------------------------------
 | 
					 | 
				
			||||||
% conform -v 2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OpenGL Conformance Test
 | 
					 | 
				
			||||||
Version 1.2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Setup Report.
 | 
					 | 
				
			||||||
    Verbose level = 2.
 | 
					 | 
				
			||||||
    Random number seed = 1.
 | 
					 | 
				
			||||||
    Path inactive.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Visual Report.
 | 
					 | 
				
			||||||
    Display ID = 35. Indirect Rendering.
 | 
					 | 
				
			||||||
    Double Buffered.
 | 
					 | 
				
			||||||
    RGBA (5, 6, 5, 0).
 | 
					 | 
				
			||||||
    Stencil (8).
 | 
					 | 
				
			||||||
    Depth (16).
 | 
					 | 
				
			||||||
    Accumulation (16, 16, 16, 16).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Epsilon Report.
 | 
					 | 
				
			||||||
    zero error epsilon = 0.000122.
 | 
					 | 
				
			||||||
    RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
 | 
					 | 
				
			||||||
    Depth buffer error epsilon = 0.000137.
 | 
					 | 
				
			||||||
    Stencil plane error epsilon = 0.00404.
 | 
					 | 
				
			||||||
    Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Default State test passed.
 | 
					 | 
				
			||||||
Must Pass test passed.
 | 
					 | 
				
			||||||
Divide By Zero test passed.
 | 
					 | 
				
			||||||
Viewport Clamp test passed.
 | 
					 | 
				
			||||||
Matrix Stack test passed.
 | 
					 | 
				
			||||||
Matrix Stack Mixing test passed.
 | 
					 | 
				
			||||||
Vertex Order test passed.
 | 
					 | 
				
			||||||
Transformations test passed.
 | 
					 | 
				
			||||||
Transformation Normal test passed.
 | 
					 | 
				
			||||||
Viewport Transformation test passed.
 | 
					 | 
				
			||||||
Buffer Clear test passed.
 | 
					 | 
				
			||||||
Buffer Corners test passed.
 | 
					 | 
				
			||||||
Buffer Color test passed.
 | 
					 | 
				
			||||||
Color Ramp test passed.
 | 
					 | 
				
			||||||
Mask test passed.
 | 
					 | 
				
			||||||
Buffer Invariance test passed.
 | 
					 | 
				
			||||||
Accumulation Buffer test passed.
 | 
					 | 
				
			||||||
Select test passed.
 | 
					 | 
				
			||||||
Feedback test passed.
 | 
					 | 
				
			||||||
Scissor test passed.
 | 
					 | 
				
			||||||
Alpha Plane Function test passed.
 | 
					 | 
				
			||||||
Stencil Plane Clear test passed.
 | 
					 | 
				
			||||||
Stencil Plane Corners test passed.
 | 
					 | 
				
			||||||
Stencil Plane Operation test passed.
 | 
					 | 
				
			||||||
Stencil Plane Function test passed.
 | 
					 | 
				
			||||||
Depth Buffer Clear test passed.
 | 
					 | 
				
			||||||
Depth Buffer Function test passed.
 | 
					 | 
				
			||||||
Blend test passed.
 | 
					 | 
				
			||||||
Dither test passed.
 | 
					 | 
				
			||||||
LogicOp Function test does not exist for an RGB visual.
 | 
					 | 
				
			||||||
DrawPixels test passed.
 | 
					 | 
				
			||||||
CopyPixels test passed.
 | 
					 | 
				
			||||||
Bitmap Rasterization test passed.
 | 
					 | 
				
			||||||
Point Rasterization test passed.
 | 
					 | 
				
			||||||
Anti-aliased Point test passed.
 | 
					 | 
				
			||||||
Line Rasterization test passed.
 | 
					 | 
				
			||||||
Line Stipple test passed.
 | 
					 | 
				
			||||||
Anti-aliased Line test passed.
 | 
					 | 
				
			||||||
Horizontal and Vertical Line test passed.
 | 
					 | 
				
			||||||
Triangle Rasterization test passed.
 | 
					 | 
				
			||||||
Triangle Tile test passed.
 | 
					 | 
				
			||||||
Triangle Stipple test passed.
 | 
					 | 
				
			||||||
Anti-aliased Triangles test passed.
 | 
					 | 
				
			||||||
Quad Rasterization test passed.
 | 
					 | 
				
			||||||
Polygon Face test passed.
 | 
					 | 
				
			||||||
Polygon Cull test passed.
 | 
					 | 
				
			||||||
Polygon Stipple test passed.
 | 
					 | 
				
			||||||
Polygon Edge test passed.
 | 
					 | 
				
			||||||
Ambient Material test passed.
 | 
					 | 
				
			||||||
Ambient Scene test passed.
 | 
					 | 
				
			||||||
Attenuation Position test passed.
 | 
					 | 
				
			||||||
Diffuse Light test passed.
 | 
					 | 
				
			||||||
Diffuse Material test passed.
 | 
					 | 
				
			||||||
Diffuse Material Normal test passed.
 | 
					 | 
				
			||||||
Diffuse Material Positioning test passed.
 | 
					 | 
				
			||||||
Emissive Material test passed.
 | 
					 | 
				
			||||||
Specular Exponent test passed.
 | 
					 | 
				
			||||||
Specular Exponent Normal test passed.
 | 
					 | 
				
			||||||
Specular Local Eye Half Angle test passed.
 | 
					 | 
				
			||||||
Specular Light test passed.
 | 
					 | 
				
			||||||
Specular Material test passed.
 | 
					 | 
				
			||||||
Specular Normal test passed.
 | 
					 | 
				
			||||||
Spot Positioning test passed.
 | 
					 | 
				
			||||||
Spot Exponent and Positioning test passed.
 | 
					 | 
				
			||||||
Spot Exponent and Direction test passed.
 | 
					 | 
				
			||||||
Fog Exponential test passed.
 | 
					 | 
				
			||||||
Fog Linear test passed.
 | 
					 | 
				
			||||||
Texture Decal test passed.
 | 
					 | 
				
			||||||
Texture Border test passed.
 | 
					 | 
				
			||||||
Mipmaps Selection test passed.
 | 
					 | 
				
			||||||
Mipmaps Interpolation test passed.
 | 
					 | 
				
			||||||
Display Lists test passed.
 | 
					 | 
				
			||||||
Evaluator test passed.
 | 
					 | 
				
			||||||
Evaluator Color test passed.
 | 
					 | 
				
			||||||
Texture Edge Clamp test passed.
 | 
					 | 
				
			||||||
Packed Pixels test passed.
 | 
					 | 
				
			||||||
Texture LOD test passed.
 | 
					 | 
				
			||||||
Rescale Normal test passed.
 | 
					 | 
				
			||||||
Color Table test passed.
 | 
					 | 
				
			||||||
Convolution test passed.
 | 
					 | 
				
			||||||
Convolution Border test passed.
 | 
					 | 
				
			||||||
Histogram test passed.
 | 
					 | 
				
			||||||
MinMax test passed.
 | 
					 | 
				
			||||||
MultiTexture test passed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Conform passed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
----------------------------------------------------------------------
 | 
					 | 
				
			||||||
% conform -v 2 -p 1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OpenGL Conformance Test
 | 
					 | 
				
			||||||
Version 1.2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Setup Report.
 | 
					 | 
				
			||||||
    Verbose level = 2.
 | 
					 | 
				
			||||||
    Random number seed = 1.
 | 
					 | 
				
			||||||
    Path level = 1.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Visual Report.
 | 
					 | 
				
			||||||
    Display ID = 35. Indirect Rendering.
 | 
					 | 
				
			||||||
    Double Buffered.
 | 
					 | 
				
			||||||
    RGBA (5, 6, 5, 0).
 | 
					 | 
				
			||||||
    Stencil (8).
 | 
					 | 
				
			||||||
    Depth (16).
 | 
					 | 
				
			||||||
    Accumulation (16, 16, 16, 16).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Epsilon Report.
 | 
					 | 
				
			||||||
    zero error epsilon = 0.000122.
 | 
					 | 
				
			||||||
    RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
 | 
					 | 
				
			||||||
    Depth buffer error epsilon = 0.000137.
 | 
					 | 
				
			||||||
    Stencil plane error epsilon = 0.00404.
 | 
					 | 
				
			||||||
    Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Default State test passed.
 | 
					 | 
				
			||||||
Must Pass test passed.
 | 
					 | 
				
			||||||
Divide By Zero test passed.
 | 
					 | 
				
			||||||
Viewport Clamp test passed.
 | 
					 | 
				
			||||||
Matrix Stack test passed.
 | 
					 | 
				
			||||||
Matrix Stack Mixing test passed.
 | 
					 | 
				
			||||||
Vertex Order test passed.
 | 
					 | 
				
			||||||
Transformations test passed.
 | 
					 | 
				
			||||||
Transformation Normal test passed.
 | 
					 | 
				
			||||||
Viewport Transformation test passed.
 | 
					 | 
				
			||||||
Buffer Clear test passed.
 | 
					 | 
				
			||||||
Buffer Corners test passed.
 | 
					 | 
				
			||||||
Buffer Color test passed.
 | 
					 | 
				
			||||||
Color Ramp test passed.
 | 
					 | 
				
			||||||
Mask test passed.
 | 
					 | 
				
			||||||
Buffer Invariance test passed.
 | 
					 | 
				
			||||||
Accumulation Buffer test passed.
 | 
					 | 
				
			||||||
Select test passed.
 | 
					 | 
				
			||||||
Feedback test passed.
 | 
					 | 
				
			||||||
Scissor test passed.
 | 
					 | 
				
			||||||
Alpha Plane Function test passed.
 | 
					 | 
				
			||||||
Stencil Plane Clear test passed.
 | 
					 | 
				
			||||||
Stencil Plane Corners test passed.
 | 
					 | 
				
			||||||
Stencil Plane Operation test passed.
 | 
					 | 
				
			||||||
Stencil Plane Function test passed.
 | 
					 | 
				
			||||||
Depth Buffer Clear test passed.
 | 
					 | 
				
			||||||
Depth Buffer Function test passed.
 | 
					 | 
				
			||||||
Blend test passed.
 | 
					 | 
				
			||||||
Dither test passed.
 | 
					 | 
				
			||||||
LogicOp Function test does not exist for an RGB visual.
 | 
					 | 
				
			||||||
DrawPixels test passed.
 | 
					 | 
				
			||||||
CopyPixels test passed.
 | 
					 | 
				
			||||||
Bitmap Rasterization test passed.
 | 
					 | 
				
			||||||
Point Rasterization test passed.
 | 
					 | 
				
			||||||
Anti-aliased Point test passed.
 | 
					 | 
				
			||||||
Line Rasterization test passed.
 | 
					 | 
				
			||||||
Line Stipple test passed.
 | 
					 | 
				
			||||||
Anti-aliased Line test passed.
 | 
					 | 
				
			||||||
Horizontal and Vertical Line test passed.
 | 
					 | 
				
			||||||
Triangle Rasterization test passed.
 | 
					 | 
				
			||||||
Triangle Tile test passed.
 | 
					 | 
				
			||||||
Triangle Stipple test passed.
 | 
					 | 
				
			||||||
Anti-aliased Triangles test passed.
 | 
					 | 
				
			||||||
Quad Rasterization test passed.
 | 
					 | 
				
			||||||
Polygon Face test passed.
 | 
					 | 
				
			||||||
Polygon Cull test passed.
 | 
					 | 
				
			||||||
Polygon Stipple test passed.
 | 
					 | 
				
			||||||
Polygon Edge test passed.
 | 
					 | 
				
			||||||
Ambient Material test passed.
 | 
					 | 
				
			||||||
Ambient Scene test passed.
 | 
					 | 
				
			||||||
Attenuation Position test passed.
 | 
					 | 
				
			||||||
Diffuse Light test passed.
 | 
					 | 
				
			||||||
Diffuse Material test passed.
 | 
					 | 
				
			||||||
Diffuse Material Normal test passed.
 | 
					 | 
				
			||||||
Diffuse Material Positioning test passed.
 | 
					 | 
				
			||||||
Emissive Material test passed.
 | 
					 | 
				
			||||||
Specular Exponent test passed.
 | 
					 | 
				
			||||||
Specular Exponent Normal test passed.
 | 
					 | 
				
			||||||
Specular Local Eye Half Angle test passed.
 | 
					 | 
				
			||||||
Specular Light test passed.
 | 
					 | 
				
			||||||
Specular Material test passed.
 | 
					 | 
				
			||||||
Specular Normal test passed.
 | 
					 | 
				
			||||||
Spot Positioning test passed.
 | 
					 | 
				
			||||||
Spot Exponent and Positioning test passed.
 | 
					 | 
				
			||||||
Spot Exponent and Direction test passed.
 | 
					 | 
				
			||||||
Fog Exponential test passed.
 | 
					 | 
				
			||||||
Fog Linear test passed.
 | 
					 | 
				
			||||||
Texture Decal test passed.
 | 
					 | 
				
			||||||
Texture Border test passed.
 | 
					 | 
				
			||||||
Mipmaps Selection test passed.
 | 
					 | 
				
			||||||
Mipmaps Interpolation test passed.
 | 
					 | 
				
			||||||
Display Lists test passed.
 | 
					 | 
				
			||||||
Evaluator test passed.
 | 
					 | 
				
			||||||
Evaluator Color test passed.
 | 
					 | 
				
			||||||
Texture Edge Clamp test passed.
 | 
					 | 
				
			||||||
Packed Pixels test passed.
 | 
					 | 
				
			||||||
Texture LOD test passed.
 | 
					 | 
				
			||||||
Rescale Normal test passed.
 | 
					 | 
				
			||||||
Color Table test passed.
 | 
					 | 
				
			||||||
Convolution test passed.
 | 
					 | 
				
			||||||
Convolution Border test passed.
 | 
					 | 
				
			||||||
Histogram test passed.
 | 
					 | 
				
			||||||
MinMax test passed.
 | 
					 | 
				
			||||||
MultiTexture test passed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Conform passed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
----------------------------------------------------------------------
 | 
					 | 
				
			||||||
% conform -v 2 -p 2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OpenGL Conformance Test
 | 
					 | 
				
			||||||
Version 1.2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Setup Report.
 | 
					 | 
				
			||||||
    Verbose level = 2.
 | 
					 | 
				
			||||||
    Random number seed = 1.
 | 
					 | 
				
			||||||
    Path level = 2.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Visual Report.
 | 
					 | 
				
			||||||
    Display ID = 35. Indirect Rendering.
 | 
					 | 
				
			||||||
    Double Buffered.
 | 
					 | 
				
			||||||
    RGBA (5, 6, 5, 0).
 | 
					 | 
				
			||||||
    Stencil (8).
 | 
					 | 
				
			||||||
    Depth (16).
 | 
					 | 
				
			||||||
    Accumulation (16, 16, 16, 16).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Epsilon Report.
 | 
					 | 
				
			||||||
    zero error epsilon = 0.000122.
 | 
					 | 
				
			||||||
    RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
 | 
					 | 
				
			||||||
    Depth buffer error epsilon = 0.000137.
 | 
					 | 
				
			||||||
    Stencil plane error epsilon = 0.00404.
 | 
					 | 
				
			||||||
    Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Default State test passed.
 | 
					 | 
				
			||||||
Must Pass test passed.
 | 
					 | 
				
			||||||
Divide By Zero test passed.
 | 
					 | 
				
			||||||
Viewport Clamp test passed.
 | 
					 | 
				
			||||||
Matrix Stack test passed.
 | 
					 | 
				
			||||||
Matrix Stack Mixing test passed.
 | 
					 | 
				
			||||||
Vertex Order test passed.
 | 
					 | 
				
			||||||
Transformations test passed.
 | 
					 | 
				
			||||||
Transformation Normal test passed.
 | 
					 | 
				
			||||||
Viewport Transformation test passed.
 | 
					 | 
				
			||||||
Buffer Clear test passed.
 | 
					 | 
				
			||||||
Buffer Corners test passed.
 | 
					 | 
				
			||||||
Buffer Color test passed.
 | 
					 | 
				
			||||||
Color Ramp test passed.
 | 
					 | 
				
			||||||
Mask test passed.
 | 
					 | 
				
			||||||
Buffer Invariance test passed.
 | 
					 | 
				
			||||||
Accumulation Buffer test passed.
 | 
					 | 
				
			||||||
Select test passed.
 | 
					 | 
				
			||||||
Feedback test passed.
 | 
					 | 
				
			||||||
Scissor test passed.
 | 
					 | 
				
			||||||
Alpha Plane Function test passed.
 | 
					 | 
				
			||||||
Stencil Plane Clear test passed.
 | 
					 | 
				
			||||||
Stencil Plane Corners test passed.
 | 
					 | 
				
			||||||
Stencil Plane Operation test passed.
 | 
					 | 
				
			||||||
Stencil Plane Function test passed.
 | 
					 | 
				
			||||||
Depth Buffer Clear test passed.
 | 
					 | 
				
			||||||
Depth Buffer Function test passed.
 | 
					 | 
				
			||||||
Blend test passed.
 | 
					 | 
				
			||||||
Dither test passed.
 | 
					 | 
				
			||||||
LogicOp Function test does not exist for an RGB visual.
 | 
					 | 
				
			||||||
DrawPixels test passed.
 | 
					 | 
				
			||||||
CopyPixels test passed.
 | 
					 | 
				
			||||||
Bitmap Rasterization test passed.
 | 
					 | 
				
			||||||
Point Rasterization test passed.
 | 
					 | 
				
			||||||
Anti-aliased Point test passed.
 | 
					 | 
				
			||||||
Line Rasterization test passed.
 | 
					 | 
				
			||||||
Line Stipple test passed.
 | 
					 | 
				
			||||||
Anti-aliased Line test passed.
 | 
					 | 
				
			||||||
Horizontal and Vertical Line test passed.
 | 
					 | 
				
			||||||
Triangle Rasterization test passed.
 | 
					 | 
				
			||||||
Triangle Tile test passed.
 | 
					 | 
				
			||||||
Triangle Stipple test passed.
 | 
					 | 
				
			||||||
Anti-aliased Triangles test passed.
 | 
					 | 
				
			||||||
Quad Rasterization test passed.
 | 
					 | 
				
			||||||
Polygon Face test passed.
 | 
					 | 
				
			||||||
Polygon Cull test passed.
 | 
					 | 
				
			||||||
Polygon Stipple test passed.
 | 
					 | 
				
			||||||
Polygon Edge test passed.
 | 
					 | 
				
			||||||
Ambient Material test passed.
 | 
					 | 
				
			||||||
Ambient Scene test passed.
 | 
					 | 
				
			||||||
Attenuation Position test passed.
 | 
					 | 
				
			||||||
Diffuse Light test passed.
 | 
					 | 
				
			||||||
Diffuse Material test passed.
 | 
					 | 
				
			||||||
Diffuse Material Normal test passed.
 | 
					 | 
				
			||||||
Diffuse Material Positioning test passed.
 | 
					 | 
				
			||||||
Emissive Material test passed.
 | 
					 | 
				
			||||||
Specular Exponent test passed.
 | 
					 | 
				
			||||||
Specular Exponent Normal test passed.
 | 
					 | 
				
			||||||
Specular Local Eye Half Angle test passed.
 | 
					 | 
				
			||||||
Specular Light test passed.
 | 
					 | 
				
			||||||
Specular Material test passed.
 | 
					 | 
				
			||||||
Specular Normal test passed.
 | 
					 | 
				
			||||||
Spot Positioning test passed.
 | 
					 | 
				
			||||||
Spot Exponent and Positioning test passed.
 | 
					 | 
				
			||||||
Spot Exponent and Direction test passed.
 | 
					 | 
				
			||||||
Fog Exponential test passed.
 | 
					 | 
				
			||||||
Fog Linear test passed.
 | 
					 | 
				
			||||||
Texture Decal test passed.
 | 
					 | 
				
			||||||
Texture Border test passed.
 | 
					 | 
				
			||||||
Mipmaps Selection test passed.
 | 
					 | 
				
			||||||
Mipmaps Interpolation test passed.
 | 
					 | 
				
			||||||
Display Lists test passed.
 | 
					 | 
				
			||||||
Evaluator test passed.
 | 
					 | 
				
			||||||
Evaluator Color test passed.
 | 
					 | 
				
			||||||
Texture Edge Clamp test passed.
 | 
					 | 
				
			||||||
Packed Pixels test passed.
 | 
					 | 
				
			||||||
Texture LOD test passed.
 | 
					 | 
				
			||||||
Rescale Normal test passed.
 | 
					 | 
				
			||||||
Color Table test passed.
 | 
					 | 
				
			||||||
Convolution test passed.
 | 
					 | 
				
			||||||
Convolution Border test passed.
 | 
					 | 
				
			||||||
Histogram test passed.
 | 
					 | 
				
			||||||
MinMax test passed.
 | 
					 | 
				
			||||||
MultiTexture test passed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Conform passed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
----------------------------------------------------------------------
 | 
					 | 
				
			||||||
% conform -v 2 -p 3
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OpenGL Conformance Test
 | 
					 | 
				
			||||||
Version 1.2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Setup Report.
 | 
					 | 
				
			||||||
    Verbose level = 2.
 | 
					 | 
				
			||||||
    Random number seed = 1.
 | 
					 | 
				
			||||||
    Path level = 3.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Visual Report.
 | 
					 | 
				
			||||||
    Display ID = 35. Indirect Rendering.
 | 
					 | 
				
			||||||
    Double Buffered.
 | 
					 | 
				
			||||||
    RGBA (5, 6, 5, 0).
 | 
					 | 
				
			||||||
    Stencil (8).
 | 
					 | 
				
			||||||
    Depth (16).
 | 
					 | 
				
			||||||
    Accumulation (16, 16, 16, 16).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Epsilon Report.
 | 
					 | 
				
			||||||
    zero error epsilon = 0.000122.
 | 
					 | 
				
			||||||
    RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
 | 
					 | 
				
			||||||
    Depth buffer error epsilon = 0.000137.
 | 
					 | 
				
			||||||
    Stencil plane error epsilon = 0.00404.
 | 
					 | 
				
			||||||
    Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Default State test passed.
 | 
					 | 
				
			||||||
Must Pass test passed.
 | 
					 | 
				
			||||||
Divide By Zero test passed.
 | 
					 | 
				
			||||||
Viewport Clamp test passed.
 | 
					 | 
				
			||||||
Matrix Stack test passed.
 | 
					 | 
				
			||||||
Matrix Stack Mixing test passed.
 | 
					 | 
				
			||||||
Vertex Order test passed.
 | 
					 | 
				
			||||||
Transformations test passed.
 | 
					 | 
				
			||||||
Transformation Normal test passed.
 | 
					 | 
				
			||||||
Viewport Transformation test passed.
 | 
					 | 
				
			||||||
Buffer Clear test passed.
 | 
					 | 
				
			||||||
Buffer Corners test passed.
 | 
					 | 
				
			||||||
Buffer Color test passed.
 | 
					 | 
				
			||||||
Color Ramp test passed.
 | 
					 | 
				
			||||||
Mask test passed.
 | 
					 | 
				
			||||||
Buffer Invariance test passed.
 | 
					 | 
				
			||||||
Accumulation Buffer test passed.
 | 
					 | 
				
			||||||
Select test passed.
 | 
					 | 
				
			||||||
Feedback test passed.
 | 
					 | 
				
			||||||
Scissor test passed.
 | 
					 | 
				
			||||||
Alpha Plane Function test passed.
 | 
					 | 
				
			||||||
Stencil Plane Clear test passed.
 | 
					 | 
				
			||||||
Stencil Plane Corners test passed.
 | 
					 | 
				
			||||||
Stencil Plane Operation test passed.
 | 
					 | 
				
			||||||
Stencil Plane Function test passed.
 | 
					 | 
				
			||||||
Depth Buffer Clear test passed.
 | 
					 | 
				
			||||||
Depth Buffer Function test passed.
 | 
					 | 
				
			||||||
Blend test passed.
 | 
					 | 
				
			||||||
Dither test passed.
 | 
					 | 
				
			||||||
LogicOp Function test does not exist for an RGB visual.
 | 
					 | 
				
			||||||
DrawPixels test passed.
 | 
					 | 
				
			||||||
CopyPixels test passed.
 | 
					 | 
				
			||||||
Bitmap Rasterization test passed.
 | 
					 | 
				
			||||||
Point Rasterization test passed.
 | 
					 | 
				
			||||||
Anti-aliased Point test passed.
 | 
					 | 
				
			||||||
Line Rasterization test passed.
 | 
					 | 
				
			||||||
Line Stipple test passed.
 | 
					 | 
				
			||||||
Anti-aliased Line test passed.
 | 
					 | 
				
			||||||
Horizontal and Vertical Line test passed.
 | 
					 | 
				
			||||||
Triangle Rasterization test passed.
 | 
					 | 
				
			||||||
Triangle Tile test passed.
 | 
					 | 
				
			||||||
Triangle Stipple test passed.
 | 
					 | 
				
			||||||
Anti-aliased Triangles test passed.
 | 
					 | 
				
			||||||
Quad Rasterization test passed.
 | 
					 | 
				
			||||||
Polygon Face test passed.
 | 
					 | 
				
			||||||
Polygon Cull test passed.
 | 
					 | 
				
			||||||
Polygon Stipple test passed.
 | 
					 | 
				
			||||||
Polygon Edge test passed.
 | 
					 | 
				
			||||||
Ambient Material test passed.
 | 
					 | 
				
			||||||
Ambient Scene test passed.
 | 
					 | 
				
			||||||
Attenuation Position test passed.
 | 
					 | 
				
			||||||
Diffuse Light test passed.
 | 
					 | 
				
			||||||
Diffuse Material test passed.
 | 
					 | 
				
			||||||
Diffuse Material Normal test passed.
 | 
					 | 
				
			||||||
Diffuse Material Positioning test passed.
 | 
					 | 
				
			||||||
Emissive Material test passed.
 | 
					 | 
				
			||||||
Specular Exponent test passed.
 | 
					 | 
				
			||||||
Specular Exponent Normal test passed.
 | 
					 | 
				
			||||||
Specular Local Eye Half Angle test passed.
 | 
					 | 
				
			||||||
Specular Light test passed.
 | 
					 | 
				
			||||||
Specular Material test passed.
 | 
					 | 
				
			||||||
Specular Normal test passed.
 | 
					 | 
				
			||||||
Spot Positioning test passed.
 | 
					 | 
				
			||||||
Spot Exponent and Positioning test passed.
 | 
					 | 
				
			||||||
Spot Exponent and Direction test passed.
 | 
					 | 
				
			||||||
Fog Exponential test passed.
 | 
					 | 
				
			||||||
Fog Linear test passed.
 | 
					 | 
				
			||||||
Texture Decal test passed.
 | 
					 | 
				
			||||||
Texture Border test passed.
 | 
					 | 
				
			||||||
Mipmaps Selection test passed.
 | 
					 | 
				
			||||||
Mipmaps Interpolation test passed.
 | 
					 | 
				
			||||||
Display Lists test passed.
 | 
					 | 
				
			||||||
Evaluator test passed.
 | 
					 | 
				
			||||||
Evaluator Color test passed.
 | 
					 | 
				
			||||||
Texture Edge Clamp test passed.
 | 
					 | 
				
			||||||
Packed Pixels test passed.
 | 
					 | 
				
			||||||
Texture LOD test passed.
 | 
					 | 
				
			||||||
Rescale Normal test passed.
 | 
					 | 
				
			||||||
Color Table test passed.
 | 
					 | 
				
			||||||
Convolution test passed.
 | 
					 | 
				
			||||||
Convolution Border test passed.
 | 
					 | 
				
			||||||
Histogram test passed.
 | 
					 | 
				
			||||||
MinMax test passed.
 | 
					 | 
				
			||||||
MultiTexture test passed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Conform passed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
----------------------------------------------------------------------
 | 
					 | 
				
			||||||
% conform -v 2 -p 4
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OpenGL Conformance Test
 | 
					 | 
				
			||||||
Version 1.2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Setup Report.
 | 
					 | 
				
			||||||
    Verbose level = 2.
 | 
					 | 
				
			||||||
    Random number seed = 1.
 | 
					 | 
				
			||||||
    Path level = 4.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Visual Report.
 | 
					 | 
				
			||||||
    Display ID = 35. Indirect Rendering.
 | 
					 | 
				
			||||||
    Double Buffered.
 | 
					 | 
				
			||||||
    RGBA (5, 6, 5, 0).
 | 
					 | 
				
			||||||
    Stencil (8).
 | 
					 | 
				
			||||||
    Depth (16).
 | 
					 | 
				
			||||||
    Accumulation (16, 16, 16, 16).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Epsilon Report.
 | 
					 | 
				
			||||||
    zero error epsilon = 0.000122.
 | 
					 | 
				
			||||||
    RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
 | 
					 | 
				
			||||||
    Depth buffer error epsilon = 0.000137.
 | 
					 | 
				
			||||||
    Stencil plane error epsilon = 0.00404.
 | 
					 | 
				
			||||||
    Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Default State test passed.
 | 
					 | 
				
			||||||
Must Pass test passed.
 | 
					 | 
				
			||||||
Divide By Zero test passed.
 | 
					 | 
				
			||||||
Viewport Clamp test passed.
 | 
					 | 
				
			||||||
Matrix Stack test passed.
 | 
					 | 
				
			||||||
Matrix Stack Mixing test passed.
 | 
					 | 
				
			||||||
Vertex Order test passed.
 | 
					 | 
				
			||||||
Transformations test passed.
 | 
					 | 
				
			||||||
Transformation Normal test passed.
 | 
					 | 
				
			||||||
Viewport Transformation test passed.
 | 
					 | 
				
			||||||
Buffer Clear test passed.
 | 
					 | 
				
			||||||
Buffer Corners test passed.
 | 
					 | 
				
			||||||
Buffer Color test passed.
 | 
					 | 
				
			||||||
Color Ramp test passed.
 | 
					 | 
				
			||||||
Mask test passed.
 | 
					 | 
				
			||||||
Buffer Invariance test passed.
 | 
					 | 
				
			||||||
Accumulation Buffer test passed.
 | 
					 | 
				
			||||||
Select test passed.
 | 
					 | 
				
			||||||
Feedback test passed.
 | 
					 | 
				
			||||||
Scissor test passed.
 | 
					 | 
				
			||||||
Alpha Plane Function test passed.
 | 
					 | 
				
			||||||
Stencil Plane Clear test passed.
 | 
					 | 
				
			||||||
Stencil Plane Corners test passed.
 | 
					 | 
				
			||||||
Stencil Plane Operation test passed.
 | 
					 | 
				
			||||||
Stencil Plane Function test passed.
 | 
					 | 
				
			||||||
Depth Buffer Clear test passed.
 | 
					 | 
				
			||||||
Depth Buffer Function test passed.
 | 
					 | 
				
			||||||
Blend test passed.
 | 
					 | 
				
			||||||
Dither test passed.
 | 
					 | 
				
			||||||
LogicOp Function test does not exist for an RGB visual.
 | 
					 | 
				
			||||||
DrawPixels test passed.
 | 
					 | 
				
			||||||
CopyPixels test passed.
 | 
					 | 
				
			||||||
Bitmap Rasterization test passed.
 | 
					 | 
				
			||||||
Point Rasterization test passed.
 | 
					 | 
				
			||||||
Anti-aliased Point test passed.
 | 
					 | 
				
			||||||
Line Rasterization test passed.
 | 
					 | 
				
			||||||
Line Stipple test passed.
 | 
					 | 
				
			||||||
Anti-aliased Line test passed.
 | 
					 | 
				
			||||||
Horizontal and Vertical Line test passed.
 | 
					 | 
				
			||||||
Triangle Rasterization test passed.
 | 
					 | 
				
			||||||
Triangle Tile test passed.
 | 
					 | 
				
			||||||
Triangle Stipple test passed.
 | 
					 | 
				
			||||||
Anti-aliased Triangles test passed.
 | 
					 | 
				
			||||||
Quad Rasterization test passed.
 | 
					 | 
				
			||||||
Polygon Face test passed.
 | 
					 | 
				
			||||||
Polygon Cull test passed.
 | 
					 | 
				
			||||||
Polygon Stipple test passed.
 | 
					 | 
				
			||||||
Polygon Edge test passed.
 | 
					 | 
				
			||||||
Ambient Material test passed.
 | 
					 | 
				
			||||||
Ambient Scene test passed.
 | 
					 | 
				
			||||||
Attenuation Position test passed.
 | 
					 | 
				
			||||||
Diffuse Light test passed.
 | 
					 | 
				
			||||||
Diffuse Material test passed.
 | 
					 | 
				
			||||||
Diffuse Material Normal test passed.
 | 
					 | 
				
			||||||
Diffuse Material Positioning test passed.
 | 
					 | 
				
			||||||
Emissive Material test passed.
 | 
					 | 
				
			||||||
Specular Exponent test passed.
 | 
					 | 
				
			||||||
Specular Exponent Normal test passed.
 | 
					 | 
				
			||||||
Specular Local Eye Half Angle test passed.
 | 
					 | 
				
			||||||
Specular Light test passed.
 | 
					 | 
				
			||||||
Specular Material test passed.
 | 
					 | 
				
			||||||
Specular Normal test passed.
 | 
					 | 
				
			||||||
Spot Positioning test passed.
 | 
					 | 
				
			||||||
Spot Exponent and Positioning test passed.
 | 
					 | 
				
			||||||
Spot Exponent and Direction test passed.
 | 
					 | 
				
			||||||
Fog Exponential test passed.
 | 
					 | 
				
			||||||
Fog Linear test passed.
 | 
					 | 
				
			||||||
Texture Decal test passed.
 | 
					 | 
				
			||||||
Texture Border test passed.
 | 
					 | 
				
			||||||
Mipmaps Selection test passed.
 | 
					 | 
				
			||||||
Mipmaps Interpolation test passed.
 | 
					 | 
				
			||||||
Display Lists test passed.
 | 
					 | 
				
			||||||
Evaluator test passed.
 | 
					 | 
				
			||||||
Evaluator Color test passed.
 | 
					 | 
				
			||||||
Texture Edge Clamp test passed.
 | 
					 | 
				
			||||||
Packed Pixels test passed.
 | 
					 | 
				
			||||||
Texture LOD test passed.
 | 
					 | 
				
			||||||
Rescale Normal test passed.
 | 
					 | 
				
			||||||
Color Table test passed.
 | 
					 | 
				
			||||||
Convolution test passed.
 | 
					 | 
				
			||||||
Convolution Border test passed.
 | 
					 | 
				
			||||||
Histogram test passed.
 | 
					 | 
				
			||||||
MinMax test passed.
 | 
					 | 
				
			||||||
MultiTexture test passed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Conform passed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLX CONFORMANCE TEST
 | 
					 | 
				
			||||||
====================
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
% conformx -v 2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OpenGL X Conformance Test
 | 
					 | 
				
			||||||
Version 1.1.1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Setup Report.
 | 
					 | 
				
			||||||
    Verbose level = 2.
 | 
					 | 
				
			||||||
    Random number seed = 1.
 | 
					 | 
				
			||||||
    Path inactive.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Visual Report.
 | 
					 | 
				
			||||||
    Display ID = 34. Direct Rendering.
 | 
					 | 
				
			||||||
    Double Buffered.
 | 
					 | 
				
			||||||
    RGBA (8, 8, 8, 0).
 | 
					 | 
				
			||||||
    Stencil (8).
 | 
					 | 
				
			||||||
    Depth (16).
 | 
					 | 
				
			||||||
    Accumulation (16, 16, 16, 16).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Epsilon Report.
 | 
					 | 
				
			||||||
    zero error epsilon = 0.000122.
 | 
					 | 
				
			||||||
    RGBA error epsilon = 0.00404, 0.00404, 0.00404, 0.000122.
 | 
					 | 
				
			||||||
    Depth buffer error epsilon = 0.000137.
 | 
					 | 
				
			||||||
    Stencil plane error epsilon = 0.00404.
 | 
					 | 
				
			||||||
    Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Default State test passed.
 | 
					 | 
				
			||||||
glReadPixels() test passed.
 | 
					 | 
				
			||||||
Font test passed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Conformx passed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
NOTE: conformx passes for all machine path levels (-p option).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
@@ -1,78 +0,0 @@
 | 
				
			|||||||
<html>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<title>Contents</title>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<body text="#ffffff" bgcolor="#119955" link="#ffffff" vlink="#dddddd" alink="#ffffff">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<b>Documentation</b>
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li><a href="intro.html" target="MainFrame">Introduction</a>
 | 
					 | 
				
			||||||
<li><a href="news.html" target="MainFrame">News</a>
 | 
					 | 
				
			||||||
<li><a href="systems.html" target="MainFrame">Platforms and Drivers</a>
 | 
					 | 
				
			||||||
<li><a href="license.html" target="MainFrame">License & Copyright</a>
 | 
					 | 
				
			||||||
<li><a href="faq.html" target="MainFrame">FAQ</a>
 | 
					 | 
				
			||||||
<li><a href="VERSIONS" target="MainFrame">Version History</a>
 | 
					 | 
				
			||||||
<li><a href="relnotes.html" target="MainFrame">Release Notes</a>
 | 
					 | 
				
			||||||
<li><a href="thanks.html" target="MainFrame">Acknowledgements</a>
 | 
					 | 
				
			||||||
<li><a href="conform.html" target="MainFrame">Conformance Testing</a>
 | 
					 | 
				
			||||||
<li>more docs below...
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<b>Download / Install</b>
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li><a href="http://www.sourceforge.net/projects/mesa3d" target="_parent">Stable Release (5.0.2)</a>
 | 
					 | 
				
			||||||
<li><a href="download.html" target="MainFrame">Downloading/Unpacking</a>
 | 
					 | 
				
			||||||
<li><a href="install.html" target="MainFrame">Compilation/Installation</a>
 | 
					 | 
				
			||||||
<li><a href="glu.html" target="MainFrame">SGI's GLU</a>
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<b>Resources</b>
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li><a href="lists.html" target="MainFrame">Mailing Lists</a>
 | 
					 | 
				
			||||||
<li><a href="bugs.html" target="MainFrame">Bug Database</a>
 | 
					 | 
				
			||||||
<li><a href="webmaster.html" target="MainFrame">Webmaster</a>
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<b>User Topics</b>
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<LI><A HREF="envvars.html" target="MainFrame">Environment Variables</A>
 | 
					 | 
				
			||||||
<LI><A HREF="osmesa.html" target="MainFrame">Off-Screen Rendering</A>
 | 
					 | 
				
			||||||
<LI><A HREF="pbuffers.html" target="MainFrame">Pbuffer Rendering</A>
 | 
					 | 
				
			||||||
<LI><A HREF="debugging.html" target="MainFrame">Debugging Tips</A>
 | 
					 | 
				
			||||||
<LI><A HREF="perf.html" target="MainFrame">Performance Tips</A>
 | 
					 | 
				
			||||||
<LI><A HREF="extensions.html" target="MainFrame">Mesa Extensions</A>
 | 
					 | 
				
			||||||
<LI><A HREF="mangling.html" target="MainFrame">Function Name Mangling</A>
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<b>Developer Topics</b>
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li><a href="http://sourceforge.net/projects/mesa3d" target="_parent">SourceForge homepage</a>
 | 
					 | 
				
			||||||
<li><a href="cvs_branches.html" target="MainFrame">CVS Branch Info</a>
 | 
					 | 
				
			||||||
<li><a href="cvs_anonymous.html" target="MainFrame">Anonymous CVS Access</a>
 | 
					 | 
				
			||||||
<li><a href="utilities.html" target="MainFrame">Utilities</a>
 | 
					 | 
				
			||||||
<li><a href="helpwanted.html" target="MainFrame">Help Wanted</a>
 | 
					 | 
				
			||||||
<li><a href="devinfo.html" target="MainFrame">Development Notes</a>
 | 
					 | 
				
			||||||
<li><a href="sourcedocs.html" target="MainFrame">Source Documentation</a>
 | 
					 | 
				
			||||||
<li><a href="subset.html" target="MainFrame">Subset Information</a>
 | 
					 | 
				
			||||||
<li><a href="fbdev-dri.html" target="MainFrame">fbdev/DRI Environment</a>
 | 
					 | 
				
			||||||
<LI><A HREF="custom.html" target="MainFrame">Custom Development</A>
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<b>Links</b>
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li><a href="http://www.opengl.org" target="_parent">OpenGL website</a>
 | 
					 | 
				
			||||||
<li><a href="http://dri.sourceforge.net" target="_parent">DRI website</a>
 | 
					 | 
				
			||||||
<li><a href="games.html" target="MainFrame">Games and Entertainment</a>
 | 
					 | 
				
			||||||
<li><a href="libraries.html" target="MainFrame">Libraries and Toolkits</a>
 | 
					 | 
				
			||||||
<li><a href="modelers.html" target="MainFrame">Modeling and Rendering</a>
 | 
					 | 
				
			||||||
<li><a href="science.html" target="MainFrame">Science and Technical</a>
 | 
					 | 
				
			||||||
<li><a href="utility.html" target="MainFrame">Utilities</a>
 | 
					 | 
				
			||||||
<li><a href="demos.html" target="MainFrame">Demos / other</a>
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<A HREF="http://sourceforge.net"
 | 
					 | 
				
			||||||
target="_parent"><IMG SRC="http://sourceforge.net/sflogo.php?group_id=3&type=1"
 | 
					 | 
				
			||||||
WIDTH="88" HEIGHT="31" ALIGN="BOTTOM" ALT="Sourceforge.net" BORDER="0"></A>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
@@ -1,25 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Custom Development</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Custom Development</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Mesa is primarily developed and maintained on a volunteer basis.
 | 
					 | 
				
			||||||
Some Mesa development work has been done in conjuction with contracted
 | 
					 | 
				
			||||||
projects, such as the XFree86/DRI drivers.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<pre>[Begin shameless plug]</pre>
 | 
					 | 
				
			||||||
If you have a need for specific or custom Mesa development work,
 | 
					 | 
				
			||||||
<a href="http://www.tungstengraphics.com/" target="_parent">
 | 
					 | 
				
			||||||
Tungsten Graphics, Inc.</a> may be able to help you.
 | 
					 | 
				
			||||||
<pre>[End shameless plug]</pre>
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
@@ -1,37 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Anonymous CVS</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Anonymous CVS</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Anonymous, public, read-only access to the code in CVS is
 | 
					 | 
				
			||||||
available. Here are the basic instructions for Unix systems:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ol>
 | 
					 | 
				
			||||||
	<li>Install CVS client software on your computer. Version 1.9.28 is known to work.
 | 
					 | 
				
			||||||
	</li><li>Login as an anonymous user: <code>cvs -d:pserver:anonymous@cvs.mesa3d.sourceforge.net:/cvsroot/mesa3d
 | 
					 | 
				
			||||||
	login</code>
 | 
					 | 
				
			||||||
	</li><li>Just hit return at the <code>CVS password:</code> prompt.
 | 
					 | 
				
			||||||
	</li><li>Then checkout mesa: <code>cvs -z3 -d:pserver:anonymous@cvs.mesa3d.sourceforge.net:/cvsroot/mesa3d
 | 
					 | 
				
			||||||
	co Mesa</code>
 | 
					 | 
				
			||||||
</li></ol>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>To update your Mesa CVS source to the latest CVS source:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</p><ol>
 | 
					 | 
				
			||||||
	<li><code>cd Mesa</code>
 | 
					 | 
				
			||||||
	</li><li><code>cvs -z3 -d:pserver:anonymous@cvs.mesa3d.sourceforge.net:/cvsroot/mesa3d
 | 
					 | 
				
			||||||
	update</code>
 | 
					 | 
				
			||||||
</li></ol>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>You can browse the Mesa source code in CVS
 | 
					 | 
				
			||||||
<a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/mesa3d/">here.
 | 
					 | 
				
			||||||
</a>
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
@@ -1,59 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>CVS Branches</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>CVS Branch Information</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The Mesa3d sources are split up into two branches. A branch that is to
 | 
					 | 
				
			||||||
remain as stable as possible, and an unstable branch where development
 | 
					 | 
				
			||||||
work for new versions will be done. The current stable branch is
 | 
					 | 
				
			||||||
tagged <code>mesa_3_4_branch</code> while the unstable branch is just
 | 
					 | 
				
			||||||
the default. The goal is to adopt and even/odd stable/unstable
 | 
					 | 
				
			||||||
versioning scheme similar to the Linux kernel. Hence releases of Mesa
 | 
					 | 
				
			||||||
3.2.X should be more stable than Mesa 3.3.X.<p></p> <p>All versions of
 | 
					 | 
				
			||||||
Mesa after 3.0 will also be tagged with a branch id. Mesa 3.1 has the
 | 
					 | 
				
			||||||
tag <code>mesa_3_1</code>, Mesa 3.2 will be <code>mesa_3_2</code>,
 | 
					 | 
				
			||||||
Mesa 3.3 <code>mesa_3_3</code>, etc..</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
To checkout a specific branch of mesa just pass <code>-r</code> and
 | 
					 | 
				
			||||||
the branch tag after your cvs command. For example <code>cvs checkout
 | 
					 | 
				
			||||||
-r mesa_3_4_branch Mesa</code> will checkout the 3.4 branch and
 | 
					 | 
				
			||||||
<code>cvs update -r mesa_3_4_branch</code> will convert your current
 | 
					 | 
				
			||||||
branch to the 3.4 dev branch.
 | 
					 | 
				
			||||||
Consult <a href="http://www.durak.org/cvswebsites/doc/cvs_5.php3#SEC54"
 | 
					 | 
				
			||||||
target="_parent">http://www.durak.org/cvswebsites/doc/cvs_5.php3#SEC54</a>
 | 
					 | 
				
			||||||
for more on branching in cvs.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
To see a list of all the CVS branchs run <code>cvs log README</code> (or any
 | 
					 | 
				
			||||||
other file) and look for the section labeled <code>symbolic names</code>.
 | 
					 | 
				
			||||||
You'll see something like this:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<pre>  symbolic names:
 | 
					 | 
				
			||||||
        mesa_4_0: 1.3
 | 
					 | 
				
			||||||
        mesa_4_0_branch: 1.3.0.6
 | 
					 | 
				
			||||||
        mesa_3_5: 1.3
 | 
					 | 
				
			||||||
        mesa_3_4_2: 1.3
 | 
					 | 
				
			||||||
        mesa_3_4_1: 1.3
 | 
					 | 
				
			||||||
        mesa_3_4: 1.3
 | 
					 | 
				
			||||||
        mesa_3_4_branch: 1.3.0.4
 | 
					 | 
				
			||||||
        mesa_3_3: 1.3
 | 
					 | 
				
			||||||
        mesa_3_2_1: 1.1.1.1
 | 
					 | 
				
			||||||
        mesa_3_3_texture_env_combine2: 1.3.0.2
 | 
					 | 
				
			||||||
        mesa_3_2: 1.1.1.1
 | 
					 | 
				
			||||||
        mesa_3_2_beta_1: 1.1.1.1
 | 
					 | 
				
			||||||
        mesa_3_1: 1.1.1.1
 | 
					 | 
				
			||||||
        mesa_3_2_dev: 1.1.1.1.0.2
 | 
					 | 
				
			||||||
        mesa_3_1_beta_3: 1.1.1.1
 | 
					 | 
				
			||||||
        start: 1.1.1.1
 | 
					 | 
				
			||||||
        mesa: 1.1.1
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
@@ -1,36 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Debugging Tips</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Debugging Tips</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
   Normally Mesa (and OpenGL) records but does not notify the user of
 | 
					 | 
				
			||||||
   errors.  It is up to the application to call
 | 
					 | 
				
			||||||
   <code>glGetError</code> to check for errors.  Mesa supports an
 | 
					 | 
				
			||||||
   environment variable, MESA_DEBUG, to help with debugging.  If
 | 
					 | 
				
			||||||
   MESA_DEBUG is defined, a message will be printed to stdout whenever
 | 
					 | 
				
			||||||
   an error occurs.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
   More extensive error checking is done when Mesa is compiled with the
 | 
					 | 
				
			||||||
   DEBUG symbol defined.  You'll have to edit the Make-config file and
 | 
					 | 
				
			||||||
   add -DDEBUG to the CFLAGS line for your system configuration.  You may
 | 
					 | 
				
			||||||
   also want to replace any optimization flags with the -g flag so you can
 | 
					 | 
				
			||||||
   use your debugger.  After you've edited Make-config type 'make clean'
 | 
					 | 
				
			||||||
   before recompiling.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
   In your debugger you can set a breakpoint in _mesa_error() to trap Mesa
 | 
					 | 
				
			||||||
   errors.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
   There is a display list printing/debugging facility.  See the end of
 | 
					 | 
				
			||||||
   src/dlist.c for details.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</BODY>
 | 
					 | 
				
			||||||
</HTML>
 | 
					 | 
				
			||||||
@@ -1,16 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Demos</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Demos</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li><a href="http://www.geocities.com/shobhand/homepage.html">Shobhan Dutta's Geartrain and Walkthrough Demos</a>
 | 
					 | 
				
			||||||
</li></ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
@@ -1,230 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Development Notes</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Development Notes</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H2>Adding Extentions</H2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
To add a new GL extension to Mesa you have to do the following.
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
   If glext.h doesn't define the extension, edit include/GL/gl.h and add:
 | 
					 | 
				
			||||||
	- new enum tokens
 | 
					 | 
				
			||||||
	- new API function entry points
 | 
					 | 
				
			||||||
	- #define GL_EXT_the_extension_name 1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   If adding a new API function (call it glNewFunctionEXT):
 | 
					 | 
				
			||||||
	- insert glNewFunctionEXT()into src/apiext.h
 | 
					 | 
				
			||||||
	- edit src/types.h and add NewFunction to the gl_api_table struct
 | 
					 | 
				
			||||||
	- implement gl_NewFunction() in the appropriate src file
 | 
					 | 
				
			||||||
	- hook gl_NewFunction() into pointers.c
 | 
					 | 
				
			||||||
	- add display list support in dlist.c for save_NewFunction()
 | 
					 | 
				
			||||||
	- add glNewFunctionEXT to gl_GetProcAddress() in extensions.c or
 | 
					 | 
				
			||||||
	  in the device driver's GetProcAddress() function if appropriate
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
If adding new GL state be sure to update get.c and enable.c
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
In general, look for an extension similar to the new one that's already
 | 
					 | 
				
			||||||
implemented in Mesa and follow it by example.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H2>Coding Style</H2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Mesa's code style has changed over the years.  Here's the latest.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Comment your code!  It's extremely important that open-source code be
 | 
					 | 
				
			||||||
well documented.  Also, strive to write clean, easily understandable code.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
3-space indentation
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
If you use tabs, set them to 8 columns
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Brace example:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
	if (condition) {
 | 
					 | 
				
			||||||
	   foo;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	else {
 | 
					 | 
				
			||||||
	   bar;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Here's the GNU indent command which will best approximate my preferred style:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
	indent -br -i3 -npcs infile.c -o outfile.c
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Local variable name example:  localVarName (no underscores)
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Constants and macros are ALL_UPPERCASE, with _ between words
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Global vars not allowed.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Function name examples:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
	glFooBar()       - a public GL entry point (in dispatch.c)
 | 
					 | 
				
			||||||
	_mesa_FooBar()   - the internal immediate mode function
 | 
					 | 
				
			||||||
	save_FooBar()    - retained mode (display list) function in dlist.c
 | 
					 | 
				
			||||||
	foo_bar()        - a static (private) function
 | 
					 | 
				
			||||||
	_mesa_foo_bar()  - an internal non-static Mesa function
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H2>Writing a Device Driver</H2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
XXX to do
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H2>Making a New Mesa Release</H2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
These are the instructions for making a new Mesa release.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Prerequisites (later versions may work):
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li>	autoconf 2.50
 | 
					 | 
				
			||||||
<li>	automake 1.4-p2
 | 
					 | 
				
			||||||
<li>	libtool 1.4
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Be sure to do a "cvs update -d ." in the Mesa directory to
 | 
					 | 
				
			||||||
get all the latest files.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Update the version definitions in src/version.h
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Create/edit the docs/RELNOTES-X.Y file to document what's new in the release.
 | 
					 | 
				
			||||||
Edit the docs/VERSIONS file too.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Edit Make-config and change the MESA_MAJOR and/or MESA_MINOR versions.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Edit the GNU configure stuff to change versions numbers as needed:
 | 
					 | 
				
			||||||
Update the version string (second argument) in the line
 | 
					 | 
				
			||||||
"AM_INIT_AUTOMAKE(Mesa, 3.3)" in the configure.in file.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Remove the leading `dnl' from the line "dnl AM_MAINTAINER_MODE".
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Verify the version numbers near the top of configure.in
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Run "fixam -f" to disable automatic dependency tracking.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Run the bootstrap script to generate the configure script.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Edit Makefile.X11 and verify DIRECTORY is set correctly.  The Mesa
 | 
					 | 
				
			||||||
sources must be in that directory (or there must be a symbolic link).
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Edit Makefile.X11 and verify that LIB_NAME and DEMO_NAME are correct.
 | 
					 | 
				
			||||||
If it's a beta release, be sure the bump up the beta release number.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
cp Makefile.X11 to Makefile so that the old-style Mesa makefiles
 | 
					 | 
				
			||||||
still work.  ./configure will overwrite it if that's what the user runs.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Make a symbolic link from $(DIRECTORY) to Mesa.  For example,
 | 
					 | 
				
			||||||
ln -s Mesa Mesa-3.3    This is needed in order to make a correct
 | 
					 | 
				
			||||||
tar file in the next step.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Make the distribution files.  From inside the Mesa directory:
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
	make -f Makefile.X11 lib_tar
 | 
					 | 
				
			||||||
	make -f Makefile.X11 demo_tar
 | 
					 | 
				
			||||||
	make -f Makefile.X11 lib_zip
 | 
					 | 
				
			||||||
	make -f Makefile.X11 demo_zip
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Copy the distribution files to a temporary directory, unpack them,
 | 
					 | 
				
			||||||
compile everything, and run some demos to be sure everything works.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Upload the *.tar.gz and *.zip files to ftp.mesa3d.org
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Update the web site.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Make an announcement on the mailing lists:
 | 
					 | 
				
			||||||
<em>m</em><em>e</em><em>s</em><em>a</em><em>3</em><em>d</em><em>-</em><em>d</em><em>e</em><em>v</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>s</em><em>f</em><em>.</em><em>n</em><em>e</em><em>t</em>,
 | 
					 | 
				
			||||||
<em>m</em><em>e</em><em>s</em><em>a</em><em>3</em><em>d</em><em>-</em><em>u</em><em>s</em><em>e</em><em>r</em><em>s</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>s</em><em>f</em><em>.</em><em>n</em><em>e</em><em>t</em>
 | 
					 | 
				
			||||||
and
 | 
					 | 
				
			||||||
<em>m</em><em>e</em><em>s</em><em>a</em><em>3</em><em>d</em><em>-</em><em>a</em><em>n</em><em>n</em><em>o</em><em>u</em><em>n</em><em>c</em><em>e</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>s</em><em>f</em><em>.</em><em>n</em><em>e</em><em>t</em>
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H2>Autoconf info</H2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
In order to run the bootstrap script you'll need:
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
autoconf 2.50
 | 
					 | 
				
			||||||
automake 1.4-p5
 | 
					 | 
				
			||||||
libtool 1.4
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
@@ -1,104 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Getting Mesa</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Downloading / Unpacking</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Mesa can be downloaded from the
 | 
					 | 
				
			||||||
<a href="http://www.sourceforge.net/projects/mesa3d" target="_parent">
 | 
					 | 
				
			||||||
SourceForge download area</A>.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Since version 2.3, Mesa is distributed in two pieces:  main library code
 | 
					 | 
				
			||||||
and demos.  If you're upgrading from a previous version of Mesa or you're not
 | 
					 | 
				
			||||||
interested in the demos you can just download the core Mesa archive file.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Mesa is available in at least three archive formats:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
1. GNU zip/tar
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	Download MesaLib-X.Y.tar.gz and optionally MesaDemos-X.Y.tar.gz
 | 
					 | 
				
			||||||
	Unpack with:
 | 
					 | 
				
			||||||
		gzcat MesaLib-X.Y.tar.gz | tar xf -
 | 
					 | 
				
			||||||
		gzcat MesaDemos-X.Y.tar.gz | tar xf -
 | 
					 | 
				
			||||||
	or
 | 
					 | 
				
			||||||
		gunzip MesaLib-X.Y.tar.gz ; tar xf MesaLib-X.Y.tar
 | 
					 | 
				
			||||||
		gunzip MesaDemos-X.Y.tar.gz ; tar xf MesaLib-X.Y.tar
 | 
					 | 
				
			||||||
	or
 | 
					 | 
				
			||||||
		tar zxf MesaLib-X.Y.tar.gz
 | 
					 | 
				
			||||||
		tar zxf MesaDemos-X.Y.tar.gz
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	If you don't have gzcat try zcat instead.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
2. Unix compressed/tar
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	Download MesaLib-X.Y.tar.Z and optionally MesaDemos-X.Y.tar.Z
 | 
					 | 
				
			||||||
	Unpack with:
 | 
					 | 
				
			||||||
		zcat MesaLib-X.Y.tar.Z | tar xf -
 | 
					 | 
				
			||||||
		zcat MesaDemos-X.Y.tar.Z | tar xf -
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
3. ZIP format
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	Download MesaLib-X.Y.zip and optionally MesaDemos-X.Y.zip
 | 
					 | 
				
			||||||
	Unpack with:
 | 
					 | 
				
			||||||
		unzip MesaLib-X.Y.zip
 | 
					 | 
				
			||||||
		unzip MesaDemos-X.Y.zip
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
After unpacking you'll have these directories (and more):
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
Makefile.X11	- top-level Makefile for X11-based systems
 | 
					 | 
				
			||||||
Make-config	- system configurations used by the Makefile.X11
 | 
					 | 
				
			||||||
include/	- GL header (include) files
 | 
					 | 
				
			||||||
bin/		- shell scripts for making shared libraries, etc
 | 
					 | 
				
			||||||
lib/		- final client libraries, created during compilation
 | 
					 | 
				
			||||||
docs/		- documentation
 | 
					 | 
				
			||||||
src/		- source code for libraries
 | 
					 | 
				
			||||||
src/mesa	- sources for the main Mesa library and device drivers
 | 
					 | 
				
			||||||
src/glu		- libGLU source code
 | 
					 | 
				
			||||||
src/glw		- Xt/Motif/OpenGL widget code
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
and if you downloaded and unpacked the MesaDemos.X.Y archive:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
src/glut	- GLUT source code
 | 
					 | 
				
			||||||
progs/		- OpenGL programs
 | 
					 | 
				
			||||||
progs/demos	- original Mesa demos
 | 
					 | 
				
			||||||
progs/xdemos	- GLX OpenGL/Mesa demos
 | 
					 | 
				
			||||||
progs/redbook	- examples from the OpenGL Programming Guide
 | 
					 | 
				
			||||||
progs/samples	- examples from SGI
 | 
					 | 
				
			||||||
progs/images/	- image files
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Proceed to <a href="install.html">compilation and installation
 | 
					 | 
				
			||||||
instructions</a>.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>GLUT</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Mesa 2.5 and later includes Mark Kilgard's GLUT library (GL Utility Toolkit).
 | 
					 | 
				
			||||||
GLUT is built automatically on systems which support it.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The GLUT tests, demos, examples, etc are not included, just the main library.
 | 
					 | 
				
			||||||
To obtain the latest complete release of GLUT please visit the
 | 
					 | 
				
			||||||
<a href="http://www.opengl.org/developers/documentation/glut/index.html"
 | 
					 | 
				
			||||||
target ="_parent">GLUT homepage</a>
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</BODY>
 | 
					 | 
				
			||||||
</HTML>
 | 
					 | 
				
			||||||
@@ -1,42 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
Blocks allocated to Mesa:
 | 
					 | 
				
			||||||
       0x8750-0x875F
 | 
					 | 
				
			||||||
       0x8BB0-0x8BBF
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_MESA_packed_depth_stencil
 | 
					 | 
				
			||||||
	GL_DEPTH_STENCIL_MESA            0x8750
 | 
					 | 
				
			||||||
	GL_UNSIGNED_INT_24_8_MESA        0x8751
 | 
					 | 
				
			||||||
	GL_UNSIGNED_INT_8_24_REV_MESA    0x8752
 | 
					 | 
				
			||||||
	GL_UNSIGNED_SHORT_15_1_MESA      0x8753
 | 
					 | 
				
			||||||
	GL_UNSIGNED_SHORT_1_15_REV_MESA  0x8754
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_MESA_trace.spec:
 | 
					 | 
				
			||||||
	GL_TRACE_ALL_BITS_MESA           0xFFFF
 | 
					 | 
				
			||||||
	GL_TRACE_OPERATIONS_BIT_MESA     0x0001
 | 
					 | 
				
			||||||
	GL_TRACE_PRIMITIVES_BIT_MESA     0x0002
 | 
					 | 
				
			||||||
	GL_TRACE_ARRAYS_BIT_MESA         0x0004
 | 
					 | 
				
			||||||
	GL_TRACE_TEXTURES_BIT_MESA       0x0008
 | 
					 | 
				
			||||||
	GL_TRACE_PIXELS_BIT_MESA         0x0010
 | 
					 | 
				
			||||||
	GL_TRACE_ERRORS_BIT_MESA         0x0020
 | 
					 | 
				
			||||||
	GL_TRACE_MASK_MESA               0x8755
 | 
					 | 
				
			||||||
	GL_TRACE_NAME_MESA               0x8756
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
MESA_ycbcr_texture.spec:
 | 
					 | 
				
			||||||
	GL_YCBCR_MESA                    0x8757
 | 
					 | 
				
			||||||
	GL_UNSIGNED_SHORT_8_8_MESA       0x85BA /* same as Apple's */
 | 
					 | 
				
			||||||
	GL_UNSIGNED_SHORT_8_8_REV_MESA   0x85BB /* same as Apple's */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_MESA_pack_invert.spec
 | 
					 | 
				
			||||||
	GL_PACK_INVERT_MESA              0x8758
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_MESA_program_debug.spec:
 | 
					 | 
				
			||||||
	GL_FRAGMENT_PROGRAM_CALLBACK_MESA      0x????
 | 
					 | 
				
			||||||
	GL_VERTEX_PROGRAM_CALLBACK_MESA        0x????
 | 
					 | 
				
			||||||
	GL_FRAGMENT_PROGRAM_POSITION_MESA      0x????
 | 
					 | 
				
			||||||
	GL_VERTEX_PROGRAM_POSITION_MESA        0x????
 | 
					 | 
				
			||||||
	GL_FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA 0x????
 | 
					 | 
				
			||||||
	GL_FRAGMENT_PROGRAM_CALLBACK_DATA_MESA 0x????
 | 
					 | 
				
			||||||
	GL_VERTEX_PROGRAM_CALLBACK_FUNC_MESA   0x????
 | 
					 | 
				
			||||||
	GL_VERTEX_PROGRAM_CALLBACK_DATA_MESA   0x????
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -1,25 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Environment Variables</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Environment Variables</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Mesa supports the following environment variables:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li>MESA_DEBUG - if defined, error messages are printed to stderr
 | 
					 | 
				
			||||||
<li>MESA_NO_DITHER - disable dithering, overriding glEnable(GL_DITHER)
 | 
					 | 
				
			||||||
<li>MESA_RGB_VISUAL - specifies the X visual and depth for RGB mode (X only)
 | 
					 | 
				
			||||||
<li>MESA_CI_VISUAL - specifies the X visual and depth for CI mode (X only)
 | 
					 | 
				
			||||||
<li>MESA_BACK_BUFFER - specifies how to implement the back color buffer (X only)
 | 
					 | 
				
			||||||
<li>MESA_PRIVATE_CMAP - force aux/tk libraries to use private colormaps (X only)
 | 
					 | 
				
			||||||
<li>MESA_GAMMA - gamma correction coefficients (X only)
 | 
					 | 
				
			||||||
<li>MESA_XSYNC - enable synchronous X behavior (for X debugging only)
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</BODY>
 | 
					 | 
				
			||||||
</HTML>
 | 
					 | 
				
			||||||
@@ -1,32 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Mesa Extensions</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Mesa Extensions</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
A number of extensions have been developed especially for Mesa.
 | 
					 | 
				
			||||||
The specifications follow.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<UL>
 | 
					 | 
				
			||||||
<LI><A HREF="MESA_agp_offset.spec">MESA_agp_offset.spec</A>
 | 
					 | 
				
			||||||
<LI><A HREF="MESA_copy_sub_buffer.spec">MESA_copy_sub_buffer.spec</A>
 | 
					 | 
				
			||||||
<LI><A HREF="MESA_packed_depth_stencil.spec">MESA_packed_depth_stencil.spec</A>
 | 
					 | 
				
			||||||
<LI><A HREF="MESA_pack_invert.spec">MESA_pack_invert.spec</A>
 | 
					 | 
				
			||||||
<LI><A HREF="MESA_pixmap_colormap.spec">MESA_pixmap_colormap.spec</A>
 | 
					 | 
				
			||||||
<LI><A HREF="MESA_release_buffers.spec">MESA_release_buffers.spec</A>
 | 
					 | 
				
			||||||
<LI><A HREF="MESA_resize_buffers.spec">MESA_resize_buffers.spec</A>
 | 
					 | 
				
			||||||
<LI><A HREF="MESA_set_3dfx_mode.spec">MESA_set_3dfx_mode.spec</A>
 | 
					 | 
				
			||||||
<LI><A HREF="MESA_sprite_point.spec">MESA_sprite_point.spec</A> (obsolete)
 | 
					 | 
				
			||||||
<LI><A HREF="MESA_trace.spec">MESA_trace.spec</A> (obsolete)
 | 
					 | 
				
			||||||
<LI><A HREF="MESA_window_pos.spec">MESA_window_pos.spec</A>
 | 
					 | 
				
			||||||
<LI><A HREF="MESA_ycbcr_texture.spec">MESA_ycbcr_texture.spec</A>
 | 
					 | 
				
			||||||
</UL>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</BODY>
 | 
					 | 
				
			||||||
</HTML>
 | 
					 | 
				
			||||||
							
								
								
									
										343
									
								
								docs/faq.html
									
									
									
									
									
								
							
							
						
						
									
										343
									
								
								docs/faq.html
									
									
									
									
									
								
							@@ -1,343 +0,0 @@
 | 
				
			|||||||
<html>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<head><title>Mesa FAQ</title></head>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<center>
 | 
					 | 
				
			||||||
<h1>Mesa Frequently Asked Questions</h1>
 | 
					 | 
				
			||||||
Last updated: 6 August 2003
 | 
					 | 
				
			||||||
</center>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<h2>Index</h2>
 | 
					 | 
				
			||||||
<a href="#part1">1. High-level Questions and Answers</a>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<a href="#part2">2. Compilation and Installation Problems</a>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<a href="#part3">3. Runtime / Rendering Problems</a>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<a href="#part4">4. Developer Questions</a>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<a name="part1">
 | 
					 | 
				
			||||||
</a><h1><a name="part1">1. High-level Questions and Answers</a></h1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2><a name="part1">1.1 What is Mesa?</a></h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a name="part1">Mesa is an open-source implementation of the OpenGL specification.
 | 
					 | 
				
			||||||
OpenGL is a programming library for writing interactive 3D applications.
 | 
					 | 
				
			||||||
See the </a><a href="http://www.opengl.org/">OpenGL website</a> for more
 | 
					 | 
				
			||||||
information.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Mesa 5.x supports the OpenGL 1.4 specification.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>1.2 Does Mesa support/use graphics hardware?</h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Yes.  Specifically, Mesa serves as the OpenGL core for the open-source
 | 
					 | 
				
			||||||
XFree86/DRI OpenGL drivers.  See the <a href="http://dri.sf.net/">DRI
 | 
					 | 
				
			||||||
website</a> for more information.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
There have been other hardware drivers for Mesa over the years (such as
 | 
					 | 
				
			||||||
the 3Dfx Glide/Voodoo driver, an old S3 driver, etc) but the DRI drivers
 | 
					 | 
				
			||||||
are the modern ones.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>1.3 What purpose does Mesa (software-based rendering) serve today?</h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Hardware-accelerated OpenGL implementations are available for most popular
 | 
					 | 
				
			||||||
operating systems today.
 | 
					 | 
				
			||||||
Still, Mesa serves at least these purposes:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li>Mesa is used as the core of the open-source XFree86/DRI hardware drivers.
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
<li>Mesa is quite portable and allows OpenGL to be used on systems
 | 
					 | 
				
			||||||
    that have no other OpenGL solution.
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
<li>Software rendering with Mesa serves as a reference for validating the
 | 
					 | 
				
			||||||
    hardware drivers.
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
<li>A software implementation of OpenGL is useful for experimentation,
 | 
					 | 
				
			||||||
    such as testing new rendering techniques.
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
<li>Mesa can render images with deep color channels: 16-bit integer
 | 
					 | 
				
			||||||
    and 32-bit floating point color channels are supported.
 | 
					 | 
				
			||||||
    This capability is only now appearing in hardware.
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
<li>Mesa's internal limits (max lights, clip planes, texture size, etc) can be
 | 
					 | 
				
			||||||
    changed for special needs (hardware limits are hard to overcome).
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>1.4 How do I upgrade my DRI installation to use a new Mesa release?</h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
You don't!  A copy of the Mesa source code lives inside the XFree86/DRI source
 | 
					 | 
				
			||||||
tree and gets compiled into the individual DRI driver modules.
 | 
					 | 
				
			||||||
If you try to install Mesa over an XFree86/DRI installation, you'll lose
 | 
					 | 
				
			||||||
hardware rendering (because stand-alone Mesa's libGL.so is different than
 | 
					 | 
				
			||||||
the XFree86 libGL.so).
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The DRI developers will incorporate the latest release of Mesa into the
 | 
					 | 
				
			||||||
DRI drivers when the time is right.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
To upgrade, either look for a new release of <a href="http://www.xfree86.org"
 | 
					 | 
				
			||||||
target="_parent">XFree86</a> or visit the
 | 
					 | 
				
			||||||
<a href="http://dri.sf.net" target="_parent">DRI website</a> to see
 | 
					 | 
				
			||||||
if there's newer drivers.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>1.5 Are there other open-source implementations of OpenGL?</h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Yes, SGI's <a href="http://oss.sgi.com/projects/ogl-sample/index.html">
 | 
					 | 
				
			||||||
OpenGL Sample Implemenation (SI)</a> is available.
 | 
					 | 
				
			||||||
The SI was written during the time that OpenGL was originally designed.
 | 
					 | 
				
			||||||
Unfortunately, development of the SI has stagnated.
 | 
					 | 
				
			||||||
Mesa is much more up to date with modern features and extensions.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a href="http://www.dsbox.com/minigl.html">miniGL</a> is a subset of OpenGL
 | 
					 | 
				
			||||||
for PalmOS devices.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<a href="http://fabrice.bellard.free.fr/TinyGL/">TinyGL</a> is another
 | 
					 | 
				
			||||||
subset of OpenGL.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
There may be others but Mesa is the most popular and feature-complete.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<a name="part2">
 | 
					 | 
				
			||||||
</a><h1><a name="part2">2. Compilation and Installation Problems</a></h1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2><a name="part2">2.1 What's the easiest way to install Mesa?</a></h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a name="part2">If you're using a Linux-based system, your distro CD most likely already
 | 
					 | 
				
			||||||
has Mesa packages (like RPM or DEB) which you can easily install.
 | 
					 | 
				
			||||||
</a></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2><a name="part2">2.2 Running <code>configure; make</code> Doesn't Work</a></h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a name="part2">Unfortunately, the GNU autoconf/automake/libtool system doesn't seem to work
 | 
					 | 
				
			||||||
too well on non GNU/Linux systems, even after installing gmake, gcc, etc.
 | 
					 | 
				
			||||||
For that reason, Mesa's <b>old-style</b> makefile system is still included.
 | 
					 | 
				
			||||||
The old-style system uses good old traditional Makefiles.  Try the following:
 | 
					 | 
				
			||||||
</a></p><pre><a name="part2">  cd Mesa-x.y.z
 | 
					 | 
				
			||||||
  cp Makefile.X11 Makefile
 | 
					 | 
				
			||||||
  make
 | 
					 | 
				
			||||||
</a></pre>
 | 
					 | 
				
			||||||
<a name="part2">You'll see a list of system configurations from which to choose.
 | 
					 | 
				
			||||||
For example:
 | 
					 | 
				
			||||||
</a><pre><a name="part2">  make linux-x86
 | 
					 | 
				
			||||||
</a></pre>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a name="part2">If you're experienced with GNU autoconf/automake/libtool and think you can help
 | 
					 | 
				
			||||||
with maintence, contact the Mesa developers.
 | 
					 | 
				
			||||||
FYI, the Mesa developers generally don't use the autoconf/automake system.
 | 
					 | 
				
			||||||
We're especially annoyed with the fact that a +5000-line script (libtool)
 | 
					 | 
				
			||||||
is needed to make shared libraries (ugh).
 | 
					 | 
				
			||||||
</a></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2><a name="part2">2.3 Mesa still doesn't compile</a></h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a name="part2">If the old-style Makefile system doesn't work either, make sure you have
 | 
					 | 
				
			||||||
the most recent version of Mesa.
 | 
					 | 
				
			||||||
Otherwise, file a bug report or post to the Mesa3d-users mailing list.
 | 
					 | 
				
			||||||
Give as much info as possible when describing your problem.
 | 
					 | 
				
			||||||
</a></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2><a name="part2">2.4 I get undefined symbols such as bgnpolygon, v3f, etc...</a></h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a name="part2">You're application is written in IRIS GL, not OpenGL.
 | 
					 | 
				
			||||||
IRIS GL was the predecessor to OpenGL and is a different thing (almost)
 | 
					 | 
				
			||||||
entirely.
 | 
					 | 
				
			||||||
Mesa's not the solution.
 | 
					 | 
				
			||||||
</a></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2><a name="part2">2.5 Where is the GLUT library?</a></h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a name="part2">GLUT (OpenGL Utility Toolkit) is in the separate MesaDemos-x.y.z.tar.gz file.
 | 
					 | 
				
			||||||
If you don't already have GLUT installed, you should grab the MesaDemos
 | 
					 | 
				
			||||||
package and unpack it before compiling Mesa.
 | 
					 | 
				
			||||||
</a></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2><a name="part2">2.6 What's the proper place for the libraries and headers?</a></h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a name="part2">On Linux-based systems you'll want to follow the
 | 
					 | 
				
			||||||
</a><a href="http://oss.sgi.com/projects/ogl-sample/ABI/index.html">Linux ABI</a>
 | 
					 | 
				
			||||||
standard.
 | 
					 | 
				
			||||||
Basically you'll want the following:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li>/usr/include/GL/gl.h - the main OpenGL header
 | 
					 | 
				
			||||||
</li><li>/usr/include/GL/glu.h - the OpenGL GLU (utility) header
 | 
					 | 
				
			||||||
</li><li>/usr/include/GL/glx.h - the OpenGL GLX header
 | 
					 | 
				
			||||||
</li><li>/usr/include/GL/glext.h - the OpenGL extensions header
 | 
					 | 
				
			||||||
</li><li>/usr/include/GL/glxext.h - the OpenGL GLX extensions header
 | 
					 | 
				
			||||||
</li><li>/usr/include/GL/osmesa.h - the Mesa off-screen rendering header
 | 
					 | 
				
			||||||
</li><li>/usr/lib/libGL.so - a symlink to libGL.so.1
 | 
					 | 
				
			||||||
</li><li>/usr/lib/libGL.so.1 - a symlink to libGL.so.1.xyz
 | 
					 | 
				
			||||||
</li><li>/usr/lib/libGL.so.xyz - the actual OpenGL/Mesa library.  xyz denotes the
 | 
					 | 
				
			||||||
Mesa version number.
 | 
					 | 
				
			||||||
</li><li>/usr/lib/libGLU.so - a symlink to libGLU.so.1
 | 
					 | 
				
			||||||
</li><li>/usr/lib/libGLU.so.1 - a symlink to libGLU.so.1.3.xyz
 | 
					 | 
				
			||||||
</li><li>/usr/lib/libGLU.so.xyz - the OpenGL Utility library.  xyz denotes the Mesa
 | 
					 | 
				
			||||||
version number.
 | 
					 | 
				
			||||||
</li></ul>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
After installing XFree86 and the DRI drivers, some of these files
 | 
					 | 
				
			||||||
may be symlinks into the /usr/X11R6/ tree.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The old-style Makefile system doesn't install the Mesa libraries; it's
 | 
					 | 
				
			||||||
up to you to copy them (and the headers) to the right place.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The GLUT header and library should go in the same directories.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<a name="part3">
 | 
					 | 
				
			||||||
</a><h1><a name="part3">3. Runtime / Rendering Problems</a></h1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2><a name="part3">3.1 Rendering is slow / why isn't my graphics hardware being used?</a></h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a name="part3">Stand-alone Mesa (downloaded as MesaLib-x.y.z.tar.gz) doesn't have any
 | 
					 | 
				
			||||||
support for hardware acceleration (with the exception of the 3DFX Voodoo
 | 
					 | 
				
			||||||
driver).
 | 
					 | 
				
			||||||
</a></p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a name="part3">What you really want is a DRI or NVIDIA (or another vendor's OpenGL) driver
 | 
					 | 
				
			||||||
for your particular hardware.
 | 
					 | 
				
			||||||
</a></p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a name="part3">You can run the <code>glxinfo</code> program to learn about your OpenGL
 | 
					 | 
				
			||||||
library.
 | 
					 | 
				
			||||||
Look for the GL_VENDOR and GL_RENDERER values.
 | 
					 | 
				
			||||||
That will identify who's OpenGL library you're using and what sort of
 | 
					 | 
				
			||||||
hardware it has detected.
 | 
					 | 
				
			||||||
</a></p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a name="part3">If your DRI-based driver isn't working, go to the
 | 
					 | 
				
			||||||
</a><a href="http://dri.sf.net/">DRI website</a> for trouble-shooting information.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>3.2 I'm seeing errors in depth (Z) buffering.  Why?</h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Make sure the ratio of the far to near clipping planes isn't too great.
 | 
					 | 
				
			||||||
Look
 | 
					 | 
				
			||||||
<a href="http://www.sgi.com/software/opengl/advanced97/notes/node18.html">
 | 
					 | 
				
			||||||
here</a> for details.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Mesa uses a 16-bit depth buffer by default which is smaller and faster
 | 
					 | 
				
			||||||
to clear than a 32-bit buffer but not as accurate.
 | 
					 | 
				
			||||||
If you need a deeper you can modify the parameters to
 | 
					 | 
				
			||||||
<code> glXChooseVisual</code> in your code.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>3.3 Why Isn't depth buffering working at all?</h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Be sure you're requesting a depth buffered-visual.  If you set the MESA_DEBUG
 | 
					 | 
				
			||||||
environment variable it will warn you about trying to enable depth testing
 | 
					 | 
				
			||||||
when you don't have a depth buffer.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>Specifically, make sure <code>glutInitDisplayMode</code> is being called
 | 
					 | 
				
			||||||
with <code>GLUT_DEPTH</code> or <code>glXChooseVisual</code> is being
 | 
					 | 
				
			||||||
called with a non-zero value for GLX_DEPTH_SIZE.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>This discussion applies to stencil buffers, accumulation buffers and
 | 
					 | 
				
			||||||
alpha channels too.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>3.4 Why does glGetString() always return NULL?</h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Be sure you have an active/current OpenGL rendering context before
 | 
					 | 
				
			||||||
calling glGetString.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>3.5 GL_POINTS and GL_LINES don't touch the right pixels</h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
If you're trying to draw a filled region by using GL_POINTS or GL_LINES
 | 
					 | 
				
			||||||
and seeing holes or gaps it's because of a float-to-int rounding problem.
 | 
					 | 
				
			||||||
But this is not a bug.
 | 
					 | 
				
			||||||
See Appendix H of the OpenGL Programming Guide - "OpenGL Correctness Tips".
 | 
					 | 
				
			||||||
Basically, applying a translation of (0.375, 0.375, 0.0) to your coordinates
 | 
					 | 
				
			||||||
will fix the problem.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<a name="part4">
 | 
					 | 
				
			||||||
</a><h1><a name="part4">4. Developer Questions</a></h1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2><a name="part4">4.1 How can I contribute?</a></h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a name="part4">First, join the Mesa3d-dev mailing list.  That's where Mesa development
 | 
					 | 
				
			||||||
is discussed.
 | 
					 | 
				
			||||||
</a></p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a name="part4">The </a><a href="http://www.opengl.org/developers/documentation/specs.html">
 | 
					 | 
				
			||||||
OpenGL Specification</a> is the bible for OpenGL implemention work.
 | 
					 | 
				
			||||||
You should read it.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>Most of the Mesa development work involves implementing new OpenGL
 | 
					 | 
				
			||||||
extensions, writing hardware drivers (for the DRI), and code optimization.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>4.2 How do I write a new device driver?</h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Unfortunately, writing a device driver isn't easy.
 | 
					 | 
				
			||||||
It requires detailed understanding of OpenGL, the Mesa code, and your
 | 
					 | 
				
			||||||
target hardware/operating system.
 | 
					 | 
				
			||||||
3D graphics are not simple.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The best way to get started is to use an existing driver as your starting
 | 
					 | 
				
			||||||
point.
 | 
					 | 
				
			||||||
For a software driver, the X11 and OSMesa drivers are good examples.
 | 
					 | 
				
			||||||
For a hardware driver, the Radeon and R200 DRI drivers are good examples.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>The DRI website has more information about writing hardware drivers.
 | 
					 | 
				
			||||||
The process isn't well document because the Mesa driver interface changes
 | 
					 | 
				
			||||||
over time, and we seldome have spare time for writing documentation.
 | 
					 | 
				
			||||||
That being said, many people have managed to figure out the process.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Joining the appropriate mailing lists and asking questions (and searching
 | 
					 | 
				
			||||||
the archives) is a good way to get information.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
@@ -1,223 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Mesa fbdev/DRI Environment</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<center><H1>Mesa fbdev/DRI Drivers</H1></center>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>1. Introduction</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The fbdev/DRI sub-project within Mesa brings hardware accelerated OpenGL
 | 
					 | 
				
			||||||
rendering to the Linux fbdev environment.
 | 
					 | 
				
			||||||
The X Window System / XFree86 is not needed.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Basically, the <a href="http://dri.sf.net/">DRI</a> drivers for hardware
 | 
					 | 
				
			||||||
accelerated OpenGL for XFree86 have been ported to fbdev so that X is
 | 
					 | 
				
			||||||
not needed.
 | 
					 | 
				
			||||||
This means fbdev/DRI works in full-screen mode only.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
DRI driver writers may find this simplified environment easier to work in,
 | 
					 | 
				
			||||||
compared to the full XFree86/DRI environment.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Much of the work for this project has been done by Jon Smirl and
 | 
					 | 
				
			||||||
Keith Whitwell.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
To use fbdev/DRI, you'll need a Linux 2.4 or 2.6 kernel.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The fbdev/DRI Mesa code is in the Mesa CVS trunk (to be released as Mesa
 | 
					 | 
				
			||||||
5.1 in the future).
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h1>2. Compilation</h1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Assuming you're starting with a fresh Mesa CVS checkout, do the following:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
   cd Mesa-newtree
 | 
					 | 
				
			||||||
   cp Makefile.X11 Makefile     # or use a symlink
 | 
					 | 
				
			||||||
   make linux-solo
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
When this is finished, check the <code>Mesa-newtree/lib</code> directory
 | 
					 | 
				
			||||||
to verify that the following files were made:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li><code>libGL.so.1.2</code> - the client-side OpenGL library
 | 
					 | 
				
			||||||
    (and a few symlinks to it).
 | 
					 | 
				
			||||||
<li><code>libGLU.so.1.1</code> - the GLU library (and a few symlinks to it).
 | 
					 | 
				
			||||||
<li><code>libglut.so.3.7</code> - the GLUT library (and a few symlinks to it).
 | 
					 | 
				
			||||||
<li><code>mga_dri.so</code> - DRI driver for Matrox G200/G400 cards.
 | 
					 | 
				
			||||||
<li><code>r128_dri.so</code> - DRI driver for ATI Rage 128 cards.
 | 
					 | 
				
			||||||
<li><code>r200_dri.so</code> - DRI driver for ATI R200 Radeon cards.
 | 
					 | 
				
			||||||
<li><code>radeon_dri.so</code> - DRI driver for original ATI Radeon cards.
 | 
					 | 
				
			||||||
<li><code>fb_dri.so</code> - software-only fbdev driver.
 | 
					 | 
				
			||||||
<li><code>miniglx.conf</code> - configuration file for the MiniGLX interface
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h1>3. Using fbdev/DRI</h1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
If XFree86 is currently running, exit/stop the X server so you're
 | 
					 | 
				
			||||||
working from the console.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>3.1 Kernel Modules</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
You'll need to load kernel modules specific to your graphics hardware.
 | 
					 | 
				
			||||||
The following kernel modules should be included with your kernel.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
If you have ATI Radeon/R200 hardware, run as root:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
   modprobe agpgart            # the AGP GART module
 | 
					 | 
				
			||||||
   modprobe radeonfb           # the Radeon fbdev driver
 | 
					 | 
				
			||||||
   modprobe radeon             # the Radeon DRI kernel module
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
If you have ATI Rage 128 hardware, run as root:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
   modprobe agpgart            # the AGP GART module
 | 
					 | 
				
			||||||
   modprobe aty128fb           # the Rage 128 fbdev driver
 | 
					 | 
				
			||||||
   modprobe r128               # the Rage 128 DRI kernel module
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
If you have Matrox G200/G400 hardware, run as root:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
   modprobe agpgart            # the AGP GART module
 | 
					 | 
				
			||||||
   modprobe mgafb              # the Matrox fbdev driver
 | 
					 | 
				
			||||||
   modprobe mga                # the Matrox DRI kernel module
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Then run <code>lsmod</code> to be sure the modules are loaded.
 | 
					 | 
				
			||||||
For a Radeon card, you should see something like this:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
Module                  Size  Used by    Not tainted
 | 
					 | 
				
			||||||
radeon                110308   0  (unused)
 | 
					 | 
				
			||||||
radeonfb               21900   0  (unused)
 | 
					 | 
				
			||||||
agpgart                43072   1 
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>3.2 Configuration File</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The <code>Mesa-newtree/lib/miniglx.conf</code> file should be installed
 | 
					 | 
				
			||||||
in <code>/etc/</code>.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Edit <code>/etc/miniglx.conf</code> to be sure it's set up correctly
 | 
					 | 
				
			||||||
for your hardware.
 | 
					 | 
				
			||||||
Comments in the file explain the options.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>3.3 Running fbdev/DRI Programs</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Make sure your LD_LIBRARY_PATH environment variable is set to the
 | 
					 | 
				
			||||||
<code>Mesa-newtree/lib/</code> directory.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Change to the <code>Mesa-newtree/progs/miniglx/</code> directory and
 | 
					 | 
				
			||||||
start the sample_server program in the background:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
   ./sample_server &
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Then try running the <code>miniglxtest</code> program:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
   ./miniglxtest
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
You should see a rotating quadrilateral which changes color as it rotates.
 | 
					 | 
				
			||||||
It will exit automatically after a bit.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
If you run other tests in the miniglx/ directory, you may want to run
 | 
					 | 
				
			||||||
them from a remote shell so that you can stop them with ctrl-C.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h1>4.0 Troubleshooting</h1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
If you try to run miniglxtest and get the following:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
   [miniglx] failed to probe chipset
 | 
					 | 
				
			||||||
   connect: Connection refused
 | 
					 | 
				
			||||||
   server connection lost
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
It means that the sample_server process is not running.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h1>5.0 Programming Information</h1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The full OpenGL API is available with fbdev/DRI.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
OpenGL/Mesa is interfaced to fbdev via the <a href="MiniGLX.html">MiniGLX</a>
 | 
					 | 
				
			||||||
interface.
 | 
					 | 
				
			||||||
MiniGLX is a subset of Xlib and GLX API functions which provides just
 | 
					 | 
				
			||||||
enough functionality to setup OpenGL rendering and respond to simple
 | 
					 | 
				
			||||||
input events.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Since MiniGLX is a subset of the usual Xlib and GLX APIs, programs written
 | 
					 | 
				
			||||||
to the MiniGLX API can also be run on full Xlib/GLX implementations.
 | 
					 | 
				
			||||||
This allows some degree of flexibility for software development and testing.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
However, the MiniGLX API is not binary-compatible with full Xlib/GLX.
 | 
					 | 
				
			||||||
Some of the structures are different and some macros/functions work
 | 
					 | 
				
			||||||
differently.
 | 
					 | 
				
			||||||
See the <code>GL/miniglx.h</code> header file for details.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
@@ -1,62 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Games</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Games</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
	<li><a href="http://www.psc.edu/%7Esmp/a3d/">Asteroids3D</a> - 3D asteroids game
 | 
					 | 
				
			||||||
	</li><li><a href="http://evlweb.eecs.uic.edu/aej/AndyBattalion.html" target="_parent">Battalion</a>
 | 
					 | 
				
			||||||
	- battle game
 | 
					 | 
				
			||||||
	</li><li><a href="http://bzflag.sourceforge.net/" target="_parent">BZFLAG</a> - 3-D tank
 | 
					 | 
				
			||||||
	battle game
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.speakeasy.org/%7Emorse/copter-commander">Copter Commander</a> - 2d multiplayer side scroller
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.crystalspace.org/" target="_parent">CrystalSpace</a> - Free
 | 
					 | 
				
			||||||
	3d game engine
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.afn.org/%7Ecthugha/" target="_parent">Cthugha</a> - music-sync'ed
 | 
					 | 
				
			||||||
	graphical effects
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.sics.se/dive/" target="_parent">DIVE</a> - Distributed Interactive
 | 
					 | 
				
			||||||
	Virtual Environment
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.newdoom.com/doomlegacy/" target="_parent">Doom Legacy</a>
 | 
					 | 
				
			||||||
	- an OpenGL port of id software's popular game, Doom
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.asimov.de/intern_dropit.html" target="_parent">DropIt</a> - 3-D tetris game
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.flightgear.org/" target="_parent">Flight Gear</a> - Flight
 | 
					 | 
				
			||||||
	simulator
 | 
					 | 
				
			||||||
	</li><li><a href="http://freetrek.linuxgames.com/" target="_parent">Free Trek</a> - Star
 | 
					 | 
				
			||||||
	Trek battle simulator
 | 
					 | 
				
			||||||
	</li><li><a href="http://mesa3d.sourceforge.net/notfound.html">Gepetto</a> - Dance Choreography
 | 
					 | 
				
			||||||
	</li><li><a href="http://glchess.sourceforge.net/" target="_parent">GLChess</a> - chess game
 | 
					 | 
				
			||||||
	</li><li><a href="http://heretic.linuxgames.com/" target="_parent">GLHeretic</a> - Heretic
 | 
					 | 
				
			||||||
	for Linux
 | 
					 | 
				
			||||||
	</li><li><a href="http://glider3d.free.fr/" target="_parent">Glider3D</a> - flight simulator
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.gltron.org/" target="_parent">glTron</a> - Tron lightcycles
 | 
					 | 
				
			||||||
	game
 | 
					 | 
				
			||||||
	</li><li><a href="http://gracer.sourceforge.net/" target="_parent">GRacer</a> - 3D Motor
 | 
					 | 
				
			||||||
	Sports Simulator
 | 
					 | 
				
			||||||
	</li><li><a href="http://jongl.home.pages.de/" target="_parent">JONGL</a> - Juggling simulator
 | 
					 | 
				
			||||||
	</li><li><a href="http://samba.anu.edu.au/KnightCap/" target="_parent">KnightCap</a> -
 | 
					 | 
				
			||||||
	chess game
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.hackcraft.de/games/linwarrior_3d/">LinWarrior 3D</a> - A Battle Mech Simulator
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.nada.kth.se/%7Ef96-lfo/lunar/" target="_parent">Lunar Lander
 | 
					 | 
				
			||||||
	2000</a> - 3D version of the classis lunar lander game
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.majik3d.org/" target="_parent">Majik 3D</a> - an online role-playing
 | 
					 | 
				
			||||||
	world
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.pobox.com/%7Eshankel/opentrek.html" target="_parent">OpenTrek</a>
 | 
					 | 
				
			||||||
	- Super Star Trek
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.idsoftware.com/" target="_parent">Quake(2,3)</a> - the popular
 | 
					 | 
				
			||||||
	games from id software
 | 
					 | 
				
			||||||
	</li><li><a href="http://torcs.free.fr/indexm.html" target="_parent">TORCS</a> - car racing
 | 
					 | 
				
			||||||
	simulator
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.woodsoup.org/projs/tux_aqfh" target="_parent">TUX-AQFH</a>
 | 
					 | 
				
			||||||
	- Tux the Penguin - a Quest for Herring
 | 
					 | 
				
			||||||
	</li><li><a href="http://mordred.8m.com/voidrunner/" target="_parent">Void Runner</a>
 | 
					 | 
				
			||||||
	- freeware arcade style game
 | 
					 | 
				
			||||||
	</li><li><a href="http://xracer.annexia.org/" target="_parent">XRacer</a> - Free spaceship
 | 
					 | 
				
			||||||
	racing game, similar to Wipeout
 | 
					 | 
				
			||||||
</li></ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body></html>
 | 
					 | 
				
			||||||
@@ -1,43 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>SGI GLU</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>SGI SI GLU</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(Silicon Graphics, Inc. Sample Implementation of the OpenGL Utility library)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
SGI open-sourced their OpenGL Sample Implementation (SI) in January, 2000.
 | 
					 | 
				
			||||||
This includes the GLU library.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The SI GLU library implements GLU version 1.3 whereas the original
 | 
					 | 
				
			||||||
Mesa GLU library only implemented version 1.2.
 | 
					 | 
				
			||||||
We recommend using the SI GLU library instead of Mesa's GLU library
 | 
					 | 
				
			||||||
since it's more up-to-date, complete and reliable.
 | 
					 | 
				
			||||||
We're no longer developing the original Mesa GLU library.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The new SI GLU library code is included in the Mesa package.
 | 
					 | 
				
			||||||
You don't have to download it separately.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<b>Olivier Michel</b> has made Linux RPMs of GLU for i386 and PowerPC.
 | 
					 | 
				
			||||||
You can download them from the
 | 
					 | 
				
			||||||
<a href="http://www.sourceforge.net/project/showfiles.php?group_id=3"
 | 
					 | 
				
			||||||
target="_parent">download area</a> under <b>Miscellaneous</b>.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Visit the <a href="http://oss.sgi.com/projects/ogl-sample/" target="_parent">
 | 
					 | 
				
			||||||
OpenGL Sample Implementation home page</a> for more information about the SI.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
@@ -1,62 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Help Wanted</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Help Wanted</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
We can always use more help with the Mesa project.  Here are some
 | 
					 | 
				
			||||||
specific areas.  If you think you can help out, post to the mesa3d-dev
 | 
					 | 
				
			||||||
mailing list.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li>Windows 98/NT build/driver maintenance and testing (Karl Schultz has been
 | 
					 | 
				
			||||||
    doing a great job of this lately)
 | 
					 | 
				
			||||||
<li>DOS/DJGPP build/driver maintenance and testing
 | 
					 | 
				
			||||||
<li>GGI driver/build maintenance and testing
 | 
					 | 
				
			||||||
<li>GNU autoconfig/libtool maintenance (esp. on non-Linux systems)
 | 
					 | 
				
			||||||
<li>x86, SSE, 3DNow! and SPARC assembly language programming
 | 
					 | 
				
			||||||
<li>Implement WGL font functions in the WGL interface code
 | 
					 | 
				
			||||||
<li>Implement off-screen bitmap rendering support in the WGL interface code
 | 
					 | 
				
			||||||
<li>Help with writing/testing the new NV_fragment_program extension code
 | 
					 | 
				
			||||||
<li>Implement the ARB_vertex/fragment extensions
 | 
					 | 
				
			||||||
<li>Download/compile/test Mesa and report any bugs found
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
If you want to help with Mesa, first join the Mesa developer's
 | 
					 | 
				
			||||||
mailing list.  Then post a message explaining what you might like
 | 
					 | 
				
			||||||
to help with.  The Mesa web page has a list of a few work items
 | 
					 | 
				
			||||||
which you may consider.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
Anyone is welcome to contribute code to the Mesa project, provided you
 | 
					 | 
				
			||||||
agree to the copyright terms of the relevant code.  See the COPYRIGHT
 | 
					 | 
				
			||||||
file.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Unfortunately, all the easy work in Mesa was done years ago.  Nowadays, the
 | 
					 | 
				
			||||||
work is rather complicated and not suited to beginners.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
If you're contribution code to the Mesa library itself:
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<ol>
 | 
					 | 
				
			||||||
<li>Try to write clean code (uniform indentation, comments, meaningful
 | 
					 | 
				
			||||||
      identifiers, etc).  It must be readable and maintainable!
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li>Test your code.  On several occations I've incorporated code from
 | 
					 | 
				
			||||||
      users which later turned out to have bugs.  Now, I'm pretty hesitant
 | 
					 | 
				
			||||||
      to use code which doesn't look good.
 | 
					 | 
				
			||||||
</ol>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</BODY>
 | 
					 | 
				
			||||||
</HTML>
 | 
					 | 
				
			||||||
@@ -1,23 +0,0 @@
 | 
				
			|||||||
<html>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<title>Mesa Home Page</title></head>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<frameset rows="50,100% " border="1" framespacing="1" frameborder="yes">
 | 
					 | 
				
			||||||
<frame src="banner.html" name="BannerFrame" scrolling="no" marginwidth="1" marginheight="1" resize="">
 | 
					 | 
				
			||||||
<frameset cols="28%,72% " border="1" framespacing="1" frameborder="yes">
 | 
					 | 
				
			||||||
<frame src="contents.html" name="ContentsFrame" marginwidth="2" marginheight="1" resize="">
 | 
					 | 
				
			||||||
<frame src="news.html" name="MainFrame" marginwidth="3" marginheight="1" resize="">
 | 
					 | 
				
			||||||
</frameset>
 | 
					 | 
				
			||||||
</frameset>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<noframes>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<P>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</noframes>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
@@ -1,255 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Compilation and Installation</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Compilation and Installation</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ol>
 | 
					 | 
				
			||||||
<li><a href="#unix-x11">Unix / X11</a>
 | 
					 | 
				
			||||||
<li><a href="#windows">Windows</a>
 | 
					 | 
				
			||||||
<li><a href="#vms">VMS</a>
 | 
					 | 
				
			||||||
<li><a href="#other">Other</a>
 | 
					 | 
				
			||||||
</ol>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<a name="unix-x11">
 | 
					 | 
				
			||||||
<H2>1. Unix/X11 Compilation and Installation</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Mesa uses a rather conventional Makefile system.
 | 
					 | 
				
			||||||
A GNU autoconf/automake system used to be included, but was discarded
 | 
					 | 
				
			||||||
in Mesa 5.1 because:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li>It seldom worked on IRIX, Solaris, AIX, etc.
 | 
					 | 
				
			||||||
<li>It was very compilicated
 | 
					 | 
				
			||||||
<li>Nobody maintained it
 | 
					 | 
				
			||||||
<li>libtool was just too weird
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
If someone strongly feels that Mesa should have a autoconf/automake
 | 
					 | 
				
			||||||
system and wants to contribute one and maintain it, we'll consider
 | 
					 | 
				
			||||||
adding it again.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h3>1.1 Compilation</h3>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
If you've obtained Mesa through CVS, do this to first:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
    cd Mesa-newtree
 | 
					 | 
				
			||||||
    cp Makefile.X11 Makefile
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Now, just type <b>make</b>.
 | 
					 | 
				
			||||||
You'll see a list of supported system configurations.
 | 
					 | 
				
			||||||
Choose one from the list (such as linux-x86), and type:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
    make linux-x86
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
That's it.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h3>1.2 The libraries</h3>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
When compilation has finished, look in the top-level <b>lib/</b> directory.
 | 
					 | 
				
			||||||
You'll see a set of library files similar to this:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
lrwxrwxrwx    1 brian    users          10 Sep  4 17:55 libGL.so -> libGL.so.1*
 | 
					 | 
				
			||||||
lrwxrwxrwx    1 brian    users          19 Sep  4 17:55 libGL.so.1 -> libGL.so.1.4.050100*
 | 
					 | 
				
			||||||
-rwxr-xr-x    1 brian    users    13940317 Sep  4 17:55 libGL.so.1.4.050100*
 | 
					 | 
				
			||||||
lrwxrwxrwx    1 brian    users          11 Sep  4 17:54 libGLU.so -> libGLU.so.1*
 | 
					 | 
				
			||||||
lrwxrwxrwx    1 brian    users          20 Sep  4 17:54 libGLU.so.1 -> libGLU.so.1.3.050100*
 | 
					 | 
				
			||||||
-rwxr-xr-x    1 brian    users      324746 Sep  3 13:54 libGLU.so.1.1*
 | 
					 | 
				
			||||||
-rwxr-xr-x    1 brian    users     2830539 Sep  4 17:54 libGLU.so.1.3.050100*
 | 
					 | 
				
			||||||
lrwxrwxrwx    1 brian    users          12 Sep  4 17:53 libglut.so -> libglut.so.3*
 | 
					 | 
				
			||||||
lrwxrwxrwx    1 brian    users          16 Sep  4 17:53 libglut.so.3 -> libglut.so.3.7.1*
 | 
					 | 
				
			||||||
-rwxr-xr-x    1 brian    users     2426683 Sep  4 17:53 libglut.so.3.7.1*
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<b>libGL</b> is the main OpenGL library (i.e. Mesa).
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<b>libGLU</b> is the OpenGL Utility library.
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<b>libglut</b> is the GLUT library.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h3>1.3 Running the demos</h3>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
If you downloaded/unpacked the MesaDemos-x.y.z.tar.gz archive or
 | 
					 | 
				
			||||||
obtained Mesa from CVS, the <b>progs/</b> directory will contain a
 | 
					 | 
				
			||||||
bunch of demonstration programs.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Before running a demo, you may have to set an environment variable
 | 
					 | 
				
			||||||
(such as <b>LD_LIBRARY_PATH</b> on Linux) to indicate where the
 | 
					 | 
				
			||||||
libraries are located.  For example:
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
<b>cd</b> into the Mesa <b>lib/</b> directory.
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<b>setenv LD_LIBRARY_PATH ${cwd}</b>   (if using csh or tcsh shell)
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
or,
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<b>export LD_LIBRARY_PATH=${PWD}</b>   (if using bash or sh shell)
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Next, change to the Mesa/demos/ directory:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
<b>cd ../progs/demos</b>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Run a demo such as gears:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
<b>./gears</b>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
If this doesn't work, try the <b>Mesa/progs/xdemos/glxinfo</b> program
 | 
					 | 
				
			||||||
and see that it prints the expected Mesa version number.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
If you're using Linux or a similar OS, verify that the demo program is
 | 
					 | 
				
			||||||
being linked with the proper library files:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
<b>ldd gears</b>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
You should see something like this:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
        libglut.so.3 => /home/brian/Mesa/lib/libglut.so.3 (0x40013000)
 | 
					 | 
				
			||||||
        libGLU.so.1 => /home/brian/Mesa/lib/libGLU.so.1 (0x40051000)
 | 
					 | 
				
			||||||
        libGL.so.1 => /home/brian/Mesa/lib/libGL.so.1 (0x400e0000)
 | 
					 | 
				
			||||||
        libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
 | 
					 | 
				
			||||||
        libm.so.6 => /lib/i686/libm.so.6 (0x403da000)
 | 
					 | 
				
			||||||
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x403fc000)
 | 
					 | 
				
			||||||
        libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x404da000)
 | 
					 | 
				
			||||||
        libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x404f1000)
 | 
					 | 
				
			||||||
        libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x40543000)
 | 
					 | 
				
			||||||
        libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x4054b000)
 | 
					 | 
				
			||||||
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x405fd000)
 | 
					 | 
				
			||||||
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40605000)
 | 
					 | 
				
			||||||
        libpthread.so.0 => /lib/i686/libpthread.so.0 (0x40613000)
 | 
					 | 
				
			||||||
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
 | 
					 | 
				
			||||||
        libdl.so.2 => /lib/libdl.so.2 (0x40644000)
 | 
					 | 
				
			||||||
        libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40647000)
 | 
					 | 
				
			||||||
        libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x40650000)
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Retrace your steps if this doesn't look right.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H3>1.4 Installing the header and library files</H3>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The standard location for the OpenGL header files on Unix-type systems is
 | 
					 | 
				
			||||||
in <code>/usr/include/GL/</code>.
 | 
					 | 
				
			||||||
The standard location for the libraries is <code>/usr/lib/</code>.
 | 
					 | 
				
			||||||
For more information see, the
 | 
					 | 
				
			||||||
<a href="http://oss.sgi.com/projects/ogl-sample/ABI/" target="_parent">
 | 
					 | 
				
			||||||
Linux/OpenGL ABI specification</a>.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
If you'd like Mesa to co-exist with another implementation of OpenGL that's
 | 
					 | 
				
			||||||
already installed, you'll have to choose different directories, like
 | 
					 | 
				
			||||||
<code>/usr/local/include/GL/</code> and <code>/usr/local/lib/</code>.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
To install the Mesa headers, do this:
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
<b>cp -r include/GL /usr/include</b>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
To install the Mesa libraries, do this:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
<b>cp -pd lib/* /usr/lib</b>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
(The -pd options preserve symbolic links)
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
If you install the libraries in a non-standard location you can use
 | 
					 | 
				
			||||||
LD_LIBRARY_PATH (on Linux) to switch between the Mesa libs and another
 | 
					 | 
				
			||||||
vendor libs whenever you want.
 | 
					 | 
				
			||||||
This is a handy way to compare multiple OpenGL implementations.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<a name="windows">
 | 
					 | 
				
			||||||
<H2>2. Windows Compilation and Installation</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Please see the <a href="README.WIN32">README.WIN32</a> file.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<a name="vms">
 | 
					 | 
				
			||||||
<H2>3. VMS Compilation and Installation</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Please see the <a href="README.VMS">README.VMS</a> file.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<a name="other">
 | 
					 | 
				
			||||||
<H2>4. Other systems</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Documentation for other environments (some may be very out of date):
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<UL>
 | 
					 | 
				
			||||||
<LI><A HREF="README.GGI">README.GGI</A> - GGI
 | 
					 | 
				
			||||||
<LI><A HREF="README.3DFX">README.3DFX</A> - 3Dfx/Glide driver
 | 
					 | 
				
			||||||
<LI><A HREF="README.AMIWIN">README.AMIWIN</A> - Amiga Amiwin
 | 
					 | 
				
			||||||
<LI><A HREF="README.BEOS">README.BEOS</A> - BeOS
 | 
					 | 
				
			||||||
<LI><A HREF="README.D3D">README.D3D</A> - Direct3D driver
 | 
					 | 
				
			||||||
<LI><A HREF="README.DJ">README.DJ</A> - DJGPP
 | 
					 | 
				
			||||||
<LI><A HREF="README.LYNXOS">README.LYNXOS</A> - LynxOS
 | 
					 | 
				
			||||||
<LI><A HREF="README.MINGW32">README.MINGW32</A> - Mingw32
 | 
					 | 
				
			||||||
<LI><A HREF="README.NeXT">README.NeXT</A> - NeXT
 | 
					 | 
				
			||||||
<LI><A HREF="README.OpenStep">README.OpenStep</A> - OpenStep
 | 
					 | 
				
			||||||
<LI><A HREF="README.OS2">README.OS2</A> - OS/2
 | 
					 | 
				
			||||||
<LI><A HREF="README.WINDML">README.WINDML</A> - WindML
 | 
					 | 
				
			||||||
</UL>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
							
								
								
									
										256
									
								
								docs/intro.html
									
									
									
									
									
								
							
							
						
						
									
										256
									
								
								docs/intro.html
									
									
									
									
									
								
							@@ -1,256 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Mesa Introduction</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Introduction</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Mesa is a 3-D graphics library with an API which is very similar to
 | 
					 | 
				
			||||||
that of <a href="http://www.opengl.org/" target="_parent">OpenGL</a>.*
 | 
					 | 
				
			||||||
To the extent that Mesa utilizes the OpenGL command syntax or state
 | 
					 | 
				
			||||||
machine, it is being used with authorization from <a
 | 
					 | 
				
			||||||
href="http://www.sgi.com/" target="_parent">Silicon Graphics,
 | 
					 | 
				
			||||||
Inc.</a>(SGI). However, the author does not possess an OpenGL license
 | 
					 | 
				
			||||||
from SGI, and makes no claim that Mesa is in any way a compatible
 | 
					 | 
				
			||||||
replacement for OpenGL or associated with SGI. Those who want a
 | 
					 | 
				
			||||||
licensed implementation of OpenGL should contact a licensed
 | 
					 | 
				
			||||||
vendor.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Please do not refer to the library as <em>MesaGL</em> (for legal
 | 
					 | 
				
			||||||
reasons). It's just <em>Mesa</em> or <em>The Mesa 3-D graphics
 | 
					 | 
				
			||||||
library</em>. <br>
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
* OpenGL is a trademark of <a href="http://www.sgi.com/"
 | 
					 | 
				
			||||||
target="_parent">Silicon Graphics Incorporated</a>.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Project History</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The Mesa project was founded by me, Brian Paul.  Here's a short history
 | 
					 | 
				
			||||||
of the project.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
August, 1993: I begin working on Mesa in my spare time.  The project
 | 
					 | 
				
			||||||
has no name at that point.  I was simply interested in writing a simple
 | 
					 | 
				
			||||||
3D graphics library that used the then-new OpenGL API.  I was partially
 | 
					 | 
				
			||||||
inspired by the <em>VOGL</em> library which emulated a subset of IRIS GL.
 | 
					 | 
				
			||||||
I had been programming with IRIS GL since 1991.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
November 1994: I contact SGI to ask permission to distribute my OpenGL-like
 | 
					 | 
				
			||||||
graphics library on the internet.  SGI was generally receptive to the
 | 
					 | 
				
			||||||
idea and after negotiations with SGI's legal department, I get permission
 | 
					 | 
				
			||||||
to release it.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
February 1995: Mesa 1.0 is released on the internet.  I expected that
 | 
					 | 
				
			||||||
a few people would be interested in it, but not thousands.
 | 
					 | 
				
			||||||
I was soon receiving patches, new features and thank-you notes on a
 | 
					 | 
				
			||||||
daily basis.  That encouraged me to continue working on Mesa.  The
 | 
					 | 
				
			||||||
name Mesa just popped into my head one day.  SGI had asked me not to use
 | 
					 | 
				
			||||||
the terms <em>"Open"</em> or <em>"GL"</em> in the project name and I didn't
 | 
					 | 
				
			||||||
want to make up a new acronym.  Later, I heard of the Mesa programming
 | 
					 | 
				
			||||||
language and the Mesa spreadsheet for NeXTStep.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
In the early days, OpenGL wasn't available on too many systems.
 | 
					 | 
				
			||||||
It even took a while for SGI to support it across their product line.
 | 
					 | 
				
			||||||
Mesa filled a big hole during that time.
 | 
					 | 
				
			||||||
For a lot of people, Mesa was their first introduction to OpenGL.
 | 
					 | 
				
			||||||
I think SGI recognized that Mesa actually helped to promote
 | 
					 | 
				
			||||||
the OpenGL API, so they didn't feel threatened by the project.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
1995-1996: I continue working on Mesa both during my spare time and during
 | 
					 | 
				
			||||||
my work hours at the Space Science and Engineering Center at the University
 | 
					 | 
				
			||||||
of Wisconsin in Madison.  My supervisor, Bill Hibbard, lets me do this because
 | 
					 | 
				
			||||||
Mesa is now being using for the <a href="http://www.ssec.wisc.edu/%7Ebillh/vis.html" target="_parent">Vis5D</a> project.
 | 
					 | 
				
			||||||
</p><p>
 | 
					 | 
				
			||||||
October 1996: Mesa 2.0 is released.  It implementes the OpenGL 1.1 specification.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
March 1997: Mesa 2.2 is released.  It supports the new 3dfx Voodoo graphics
 | 
					 | 
				
			||||||
card via the Glide library.  It's the first really popular hardware OpenGL
 | 
					 | 
				
			||||||
implementation for Linux.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
September 1998: Mesa 3.0 is released.  It's the first publicly-available
 | 
					 | 
				
			||||||
implementation of the OpenGL 1.2 API.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
March 1999: I attend my first OpenGL ARB meeting.  I contribute to the
 | 
					 | 
				
			||||||
development of several official OpenGL extensions over the years.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
September 1999: I'm hired by Precision Insight, Inc.  Mesa is a key
 | 
					 | 
				
			||||||
component of 3D hardware acceleration in the new DRI project for XFree86.
 | 
					 | 
				
			||||||
Drivers for 3dfx, 3dLabs, Intel, Matrox and ATI hardware soon follow.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
October 2001: Mesa 4.0 is released.
 | 
					 | 
				
			||||||
It implements the OpenGL 1.3 specification.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
November 2001: I cofound <a href="http://www.tungstengraphics.com" target="_parent">
 | 
					 | 
				
			||||||
Tungsten Graphics, Inc.</a> with Keith Whitwell, Jens Owen, David Dawes and
 | 
					 | 
				
			||||||
Frank LaMonica.
 | 
					 | 
				
			||||||
I continue to develop Mesa as part of my resposibilities with Tungsten
 | 
					 | 
				
			||||||
Graphics and as a spare-time project.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
November 2002: Mesa 5.0 is released.
 | 
					 | 
				
			||||||
It implements the OpenGL 1.4 specification.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Ongoing: Mesa is used as the core of many hardware OpenGL drivers for XFree86
 | 
					 | 
				
			||||||
within the
 | 
					 | 
				
			||||||
<A href="http://dri.sourceforge.net/" target="_parent">DRI project</A>.
 | 
					 | 
				
			||||||
I continue to enhance Mesa with new extensions and features.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Major Versions</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
This is a summary of the major versions of Mesa.  Note that Mesa's major
 | 
					 | 
				
			||||||
version number tracks OpenGL's minor version number.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H2>Version 5.x features</H2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Version 5.x of Mesa implements the OpenGL 1.4 API with the following
 | 
					 | 
				
			||||||
extensions incorporated as standard features:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li>GL_ARB_depth_texture
 | 
					 | 
				
			||||||
<li>GL_ARB_shadow
 | 
					 | 
				
			||||||
<li>GL_ARB_texture_env_crossbar
 | 
					 | 
				
			||||||
<li>GL_ARB_texture_mirror_repeat
 | 
					 | 
				
			||||||
<li>GL_ARB_window_pos
 | 
					 | 
				
			||||||
<li>GL_EXT_blend_color
 | 
					 | 
				
			||||||
<li>GL_EXT_blend_func_separate
 | 
					 | 
				
			||||||
<li>GL_EXT_blend_logic_op
 | 
					 | 
				
			||||||
<li>GL_EXT_blend_minmax
 | 
					 | 
				
			||||||
<li>GL_EXT_blend_subtract
 | 
					 | 
				
			||||||
<li>GL_EXT_fog_coord
 | 
					 | 
				
			||||||
<li>GL_EXT_multi_draw_arrays
 | 
					 | 
				
			||||||
<li>GL_EXT_point_parameters
 | 
					 | 
				
			||||||
<li>GL_EXT_secondary_color
 | 
					 | 
				
			||||||
<li>GL_EXT_stencil_wrap
 | 
					 | 
				
			||||||
<li>GL_EXT_texture_lod_bias (plus, a per-texture LOD bias parameter)
 | 
					 | 
				
			||||||
<li>GL_SGIS_generate_mipmap
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H2>Version 4.x features</H2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Version 4.x of Mesa implements the OpenGL 1.3 API with the following
 | 
					 | 
				
			||||||
extensions incorporated as standard features:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li>GL_ARB_multisample
 | 
					 | 
				
			||||||
<li>GL_ARB_multitexture
 | 
					 | 
				
			||||||
<li>GL_ARB_texture_border_clamp
 | 
					 | 
				
			||||||
<li>GL_ARB_texture_compression
 | 
					 | 
				
			||||||
<li>GL_ARB_texture_cube_map
 | 
					 | 
				
			||||||
<li>GL_ARB_texture_env_add
 | 
					 | 
				
			||||||
<li>GL_ARB_texture_env_combine
 | 
					 | 
				
			||||||
<li>GL_ARB_texture_env_dot3
 | 
					 | 
				
			||||||
<li>GL_ARB_transpose_matrix
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H2>Version 3.x features</H2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Version 3.x of Mesa implements the OpenGL 1.2 API with the following
 | 
					 | 
				
			||||||
features:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li>BGR, BGRA and packed pixel formats
 | 
					 | 
				
			||||||
<li>New texture border clamp mode
 | 
					 | 
				
			||||||
<li>glDrawRangeElements()
 | 
					 | 
				
			||||||
<li>standard 3-D texturing
 | 
					 | 
				
			||||||
<li>advanced MIPMAP control
 | 
					 | 
				
			||||||
<li>separate specular color interpolation
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H2>Version 2.x features</H2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Version 2.x of Mesa implements the OpenGL 1.1 API with the following
 | 
					 | 
				
			||||||
features.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li>Texture mapping:
 | 
					 | 
				
			||||||
	<ul>
 | 
					 | 
				
			||||||
	<li>glAreTexturesResident
 | 
					 | 
				
			||||||
	<li>glBindTexture
 | 
					 | 
				
			||||||
	<li>glCopyTexImage1D
 | 
					 | 
				
			||||||
	<li>glCopyTexImage2D
 | 
					 | 
				
			||||||
	<li>glCopyTexSubImage1D
 | 
					 | 
				
			||||||
	<li>glCopyTexSubImage2D
 | 
					 | 
				
			||||||
	<li>glDeleteTextures
 | 
					 | 
				
			||||||
	<li>glGenTextures
 | 
					 | 
				
			||||||
	<li>glIsTexture
 | 
					 | 
				
			||||||
	<li>glPrioritizeTextures
 | 
					 | 
				
			||||||
	<li>glTexSubImage1D
 | 
					 | 
				
			||||||
	<li>glTexSubImage2D
 | 
					 | 
				
			||||||
	</ul>
 | 
					 | 
				
			||||||
<li>Vertex Arrays:
 | 
					 | 
				
			||||||
	<ul>
 | 
					 | 
				
			||||||
	<li>glArrayElement
 | 
					 | 
				
			||||||
	<li>glColorPointer
 | 
					 | 
				
			||||||
	<li>glDrawElements
 | 
					 | 
				
			||||||
	<li>glEdgeFlagPointer
 | 
					 | 
				
			||||||
	<li>glIndexPointer
 | 
					 | 
				
			||||||
	<li>glInterleavedArrays
 | 
					 | 
				
			||||||
	<li>glNormalPointer
 | 
					 | 
				
			||||||
	<li>glTexCoordPointer
 | 
					 | 
				
			||||||
	<li>glVertexPointer
 | 
					 | 
				
			||||||
	</ul>
 | 
					 | 
				
			||||||
<li>Client state management:
 | 
					 | 
				
			||||||
	<ul>
 | 
					 | 
				
			||||||
	<li>glDisableClientState
 | 
					 | 
				
			||||||
	<li>glEnableClientState
 | 
					 | 
				
			||||||
	<li>glPopClientAttrib
 | 
					 | 
				
			||||||
	<li>glPushClientAttrib
 | 
					 | 
				
			||||||
	</ul>
 | 
					 | 
				
			||||||
<li>Misc:
 | 
					 | 
				
			||||||
	<ul>
 | 
					 | 
				
			||||||
	<li>glGetPointer
 | 
					 | 
				
			||||||
	<li>glIndexub
 | 
					 | 
				
			||||||
	<li>glIndexubv
 | 
					 | 
				
			||||||
	<li>glPolygonOffset
 | 
					 | 
				
			||||||
	</ul>
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
@@ -1,55 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Libraries and Toolkits</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Libraries and Toolkits</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li><a href="http://mrpowers.com/Apprentice/">Apprentice</a> - free OpenInventor work-alike
 | 
					 | 
				
			||||||
<li><a href="http://www.coin3d.org/coin.html" target="_parent">Coin</a> - OSS Open Inventor clone
 | 
					 | 
				
			||||||
<li><a href="http://www.softintegration.com/products/toolkit/opengl/" target="_parent">Ch</a> - OpenGL bindings for the Ch C/C++ interpreter
 | 
					 | 
				
			||||||
<li><a href="http://www.cfdrc.com/FOX/fox.html" target="_parent">FOX</a> - GUI Library
 | 
					 | 
				
			||||||
<li><a href="http://www.jausoft.com/gl4java.html" target="_parent">GL4Java</a> - a Java wrapper for OpenGL
 | 
					 | 
				
			||||||
<li><a href="http://www.student.oulu.fi/%7Ejlof/gtkglarea/" target="_parent">GtkGLArea</a> - OpenGL Gtk widget
 | 
					 | 
				
			||||||
<li><a href="http://www.ece.ucdavis.edu/%7Ekenelson/gtk-glarea/" target="_parent">GtkGLArea--</a> - OpenGL Gtk-- widget for C++
 | 
					 | 
				
			||||||
<li><a href="http://gtkpas.sourceforge.net/" target="_parent">GTKpas</a> - OpenGL Gtk widget for <a href="http://www.freepascal.org/" target="_parent">FreePascal</a>
 | 
					 | 
				
			||||||
<li><a href="http://freeglut.sourceforge.net/" target="_parent">FreeGLUT</a> - a GLUT work-alike
 | 
					 | 
				
			||||||
<li><a href="http://math.nist.gov/f90gl" target="_parent">Fortran77/90 bindings for OpenGL and Mesa</a> - by William Mitchell
 | 
					 | 
				
			||||||
<li><a href="http://glow.sourceforge.net/" target="_parent">GLOW</a> - a GUI toolkit for GLUT and OpenGL
 | 
					 | 
				
			||||||
<li><a href="http://www.nigels.com/glt/">Glt</a> - an OpenGL C++ toolkit
 | 
					 | 
				
			||||||
<li><a href="http://www.opengl.org/developers/documentation/glut/" target="_parent">GLUT (GL Utility Toolkit)</a> - by Mark Kilgard
 | 
					 | 
				
			||||||
<li><a href="http://atrey.karlin.mff.cuni.cz/%7E0rfelyus/guileGL/" target="_parent">GuileGL</a> - OpenGL and GtkGLArea language bindings for Guile
 | 
					 | 
				
			||||||
<li><a href="http://www.rsinc.com/" target="_parent">IDL</a> - Interactive Data Language
 | 
					 | 
				
			||||||
<li><a href="http://www.newplanetsoftware.com/jx/" target="_parent">JX</a> - C++ application framework and GUI library
 | 
					 | 
				
			||||||
<li><a href="http://www.vrs3d.org/" target="_parent">MAM/VRS</a> - object-oriented toolkit for 3D graphics
 | 
					 | 
				
			||||||
<li><a href="http://www.jwdt.com/%7Epaysan/bigforth.html" target="_parent">MINOS</a> - GUI library
 | 
					 | 
				
			||||||
<li><a href="http://sourceforge.net/project/?group_id=2795" target="_parent">OglCLib</a> - C++ wrapper for OpenGL
 | 
					 | 
				
			||||||
<li><a href="http://oss.sgi.com/projects/inventor" target="_parent"> Open Inventor</a> - the Open Inventor toolkit from SGI
 | 
					 | 
				
			||||||
<li><a href="http://www.tgs.com/" target="_parent">Open Inventor</a> - the Open Inventor toolkit from Template Graphics Software, Inc.
 | 
					 | 
				
			||||||
<li><a href="http://openrm.sourceforge.net/" target="_parent">OpenRM</a>
 | 
					 | 
				
			||||||
- Open Source, multithreaded, parallel scene graph API
 | 
					 | 
				
			||||||
<li><a href="http://www.opensg.org/OpenSGPLUS/index.EN.html" target="_parent">
 | 
					 | 
				
			||||||
Open SG PLUS</a> - a scene-graph library
 | 
					 | 
				
			||||||
<li><a href="http://www.openscenegraph.org/" target="_parent">Open Scene Graph
 | 
					 | 
				
			||||||
</a> - a scene-graph library
 | 
					 | 
				
			||||||
<li><a href="http://www.openvrml.org/" target="_parent">OpenVRML</a>
 | 
					 | 
				
			||||||
- a VRML parsing/display library with "lookat" - an example VRML browser
 | 
					 | 
				
			||||||
<li><a href="http://www.woodsoup.org/projs/plib" target="_parent">PLIB</a> - A collection of portable games libraries, including an OpenGL GUI and a simple Scene Graph API
 | 
					 | 
				
			||||||
<li><a href="ftp://ftp.troll.no/contest/Pryan-1.2.tar.gz" target="_parent">Pryan</a> - an OpenInventor-like toolkit
 | 
					 | 
				
			||||||
<li><a href="http://starship.python.net:9673/crew/da/Code/PyOpenGL" target="_parent">PyOpenGL</a> - OpenGL interface for Python
 | 
					 | 
				
			||||||
<li><a href="http://www.quesa.org/" target="_parent">Quesa</a> - QuickDraw3D-compatible library based on OpenGL, Mesa or Direct3D
 | 
					 | 
				
			||||||
<li><a href="http://www.mesa3d.org/brianp/repgl.txt" target="_parent">repGL</a> - IRIS GL emulated with OpenGL
 | 
					 | 
				
			||||||
<li><a href="http://www.scitechsoft.com/dp_mgl.html" target="_parent">SciTech MGL</a> - A multiplatform (Windows, Linux, OS/2, DOS, QNX, SMX, RT-Target & more) graphics library
 | 
					 | 
				
			||||||
<li><a href="http://sgl.sourceforge.net/" target="_parent">SGL</a> - a 3D Scene Graph Library
 | 
					 | 
				
			||||||
<li><a href="http://www.lal.in2p3.fr/SI/SoFree/" target="_parent">SoFree</a> - a free implementation of Open Inventor
 | 
					 | 
				
			||||||
<li><a href="http://togl.sourceforge.net/" target="_parent">Togl</a> - Tcl/Tk widget for OpenGL
 | 
					 | 
				
			||||||
<li><a href="http://mesa3d.sourceforge.net/notfound.html">VLE</a> - Virtual Reality Toolkit
 | 
					 | 
				
			||||||
<li><a href="http://www.int.com/" target="_parent">View3D Widget</a> - 3-D GUI widget
 | 
					 | 
				
			||||||
<li><a href="http://www.kitware.com/vtk.html" target="_parent">VTK</a> - Visualization Toolkit
 | 
					 | 
				
			||||||
<li><a href="http://home.earthlink.net/%7Erzeh/YAJOGLB/doc/YAJOGLB.html" target="_parent">YAJOGL</a> - Yet Another Java GL Binding.
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body></html>
 | 
					 | 
				
			||||||
@@ -1,115 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>License / Cppyright Information</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>License / Copyright Information</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The Mesa distribution consists of several components.  Different copyrights
 | 
					 | 
				
			||||||
and licenses apply to different components.  For example, GLUT is copyrighted
 | 
					 | 
				
			||||||
by Mark Kilgard, some demo programs are copyrighted by SGI, some of the Mesa
 | 
					 | 
				
			||||||
device drivers are copyrighted by their authors.  See below for a list of
 | 
					 | 
				
			||||||
Mesa's components and the copyright/license for each.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The core Mesa library is licensed according to the terms of the XFree86
 | 
					 | 
				
			||||||
copyright (an MIT-style license).  This allows integration with the
 | 
					 | 
				
			||||||
XFree86/DRI project.  Unless otherwise stated, the Mesa source code and
 | 
					 | 
				
			||||||
documentation is licensed as follows:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Permission is hereby granted, free of charge, to any person obtaining a
 | 
					 | 
				
			||||||
copy of this software and associated documentation files (the "Software"),
 | 
					 | 
				
			||||||
to deal in the Software without restriction, including without limitation
 | 
					 | 
				
			||||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
 | 
					 | 
				
			||||||
and/or sell copies of the Software, and to permit persons to whom the
 | 
					 | 
				
			||||||
Software is furnished to do so, subject to the following conditions:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The above copyright notice and this permission notice shall be included
 | 
					 | 
				
			||||||
in all copies or substantial portions of the Software.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 | 
					 | 
				
			||||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
					 | 
				
			||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 | 
					 | 
				
			||||||
BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
 | 
					 | 
				
			||||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 | 
					 | 
				
			||||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Attention, Contributors</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
When contributing to the Mesa project you must agree to relinquish your
 | 
					 | 
				
			||||||
work to the holder of the copyright for the particular component you're
 | 
					 | 
				
			||||||
contributing to.  That is, you can't put your own copyright on the code,
 | 
					 | 
				
			||||||
unless it's a modular piece that can be omitted from Mesa (like a new
 | 
					 | 
				
			||||||
device driver).  If for example, you contribute a bug fix to Mesa's
 | 
					 | 
				
			||||||
texture mapping code, your code will become a part of the body of work
 | 
					 | 
				
			||||||
which is copyrighted by Brian Paul and licensed by the above terms.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
Mesa Component Licenses:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Component       Files                 Primary Author      License
 | 
					 | 
				
			||||||
----------------------------------------------------------------------------
 | 
					 | 
				
			||||||
core Mesa code  src/*.[ch]            Brian Paul          Mesa
 | 
					 | 
				
			||||||
                include/GL/gl.h
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLX driver      src/X/*               Brian Paul          Mesa
 | 
					 | 
				
			||||||
                include/GL/glx.h
 | 
					 | 
				
			||||||
                include/GL/xmesa.h
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OS/Mesa driver  src/OSmesa/*          Brian Paul          Mesa
 | 
					 | 
				
			||||||
                include/GL/osmesa.h
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
3Dfx driver     src/FX/*              David Bucciarelli   Mesa
 | 
					 | 
				
			||||||
                include/GL/fxmesa.h
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
BeOS R4 driver  src/BeOS/*            Brian Paul          Mesa
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
MGL driver      src/MGL/*             SciTech, Inc        SciTech copyright
 | 
					 | 
				
			||||||
                include/GL/mglmesa.h
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Windows driver  src/Windows/*         Li Wei              copyright by Li Wei
 | 
					 | 
				
			||||||
                include/GL/wmesa.h
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
SVGA driver     src/SVGA/*            Brian Paul          GNU-LGPL
 | 
					 | 
				
			||||||
                include/GL/svgamesa.h
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DOS driver      src/DOS/*             Charlie Wallace     GNU-LGPL
 | 
					 | 
				
			||||||
                include/GL/dosmesa.h
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GGI driver      src/GGI/*             Uwe Maurer          GNU-LGPL
 | 
					 | 
				
			||||||
                include/GL/ggimesa.h
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
S3 driver       src/S3/*              S3, Inc.            S3 copyright
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLUT            src-glut/*            Mark Kilgard        Mark's copyright
 | 
					 | 
				
			||||||
                include/GL/*glut*.h
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLU library     src-glu/*             Brian Paul          GNU-LGPL
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
SI GLU library  si-glu/*              SGI                 SGI Free B
 | 
					 | 
				
			||||||
                include/GL/glu.h
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Ext registry    include/GL/glext.h    SGI                 SGI Free B
 | 
					 | 
				
			||||||
                include/GL/glxext.h
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
demo programs   demos/*               various             see source files
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
X demos         xdemos/*              Brian Paul          see source files
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
SGI demos       samples/*             SGI                 SGI copyright
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RedBook demos   book/*                SGI                 SGI copyright
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
@@ -1,51 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Mesa Mailing Lists</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Mailing Lists</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>There are four Mesa mailing lists:</p>
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li><b>mesa3d-users</b> - intended for users of the Mesa library.
 | 
					 | 
				
			||||||
Newbie questions are appropriate, but please try reading the Mesa documentation first.
 | 
					 | 
				
			||||||
</li><li><b>mesa3d-dev</b> - intended for developers of the Mesa library.
 | 
					 | 
				
			||||||
This is not for beginners.
 | 
					 | 
				
			||||||
</li><li><b>mesa3d-cvs</b> - CVS check-in messages are sent to this list.
 | 
					 | 
				
			||||||
This is useful for tracking ongoing development changes.
 | 
					 | 
				
			||||||
</li><li><b>mesa3d-announce</b> - announcements of new Mesa versions are sent to this list.
 | 
					 | 
				
			||||||
</li></ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
To subscribe or unsubscribe, go to the
 | 
					 | 
				
			||||||
<a href="http://www.sourceforge.net/mail/?group_id=3" target="_parent">
 | 
					 | 
				
			||||||
SourceForge lists page.</a>
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>The mailing lists are managed by SourceForge.  If you're having trouble
 | 
					 | 
				
			||||||
with the mailing lists please contact the SourceForge administrators for help.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Archives of the old Mesa mailing list which was hosted by unicamp.br
 | 
					 | 
				
			||||||
are available <a href="http://groups.yahoo.com/group/mesa/messages/">here</a>.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Here are some other OpenGL-related forums you might find useful:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Usenet newsgroups:
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li>comp.graphics.algorithms
 | 
					 | 
				
			||||||
<li>comp.graphics.api.opengl
 | 
					 | 
				
			||||||
<li>comp.os.linux.x
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a href="http://www.opengl.org/">OpenGL discussion forums</A> at www.opengl.org
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</HTML>
 | 
					 | 
				
			||||||
</BODY>
 | 
					 | 
				
			||||||
@@ -1,26 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Function Name Mangling</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Function Name Mangling</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
If you want to use Mesa and native OpenGL in the same application at
 | 
					 | 
				
			||||||
the same time you may find it useful to compile Mesa with
 | 
					 | 
				
			||||||
<i>name mangling</i>.
 | 
					 | 
				
			||||||
This results in all the Mesa functions being prefixed with
 | 
					 | 
				
			||||||
<b>mgl</b> instead of <b>gl</b>.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
To do this, recompile Mesa with the compiler flag -DUSE_MGL_NAMESPACE.
 | 
					 | 
				
			||||||
Add the flag to the other compiler flags in Make-config (if using the
 | 
					 | 
				
			||||||
old-style build system) or in src/Makefile if using GNU autoconf/
 | 
					 | 
				
			||||||
automake to build Mesa.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</BODY>
 | 
					 | 
				
			||||||
</HTML>
 | 
					 | 
				
			||||||
@@ -1,70 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Modelers, Renderers and Viewers</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Modelers, Renderers and Viewers</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
	<li><a href="http://www.ac3d.org/" target="_parent">AC3D</a> - 3-D modeler
 | 
					 | 
				
			||||||
	</li><li><a href="http://mesa3d.sourceforge.net/notfound.html">ARCAD</a> - CAD program
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.mediascape.com/" target="_parent">Artstream</a> - provides
 | 
					 | 
				
			||||||
	functionality like Corel Draw and Illustrator
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.blender.nl/" target="_parent">Blender</a> - 3-D animation
 | 
					 | 
				
			||||||
	software
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.bmrt.org/" target="_parent">BMRT</a> - Blue Moon Rendering
 | 
					 | 
				
			||||||
	Tools
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.arq.net/%7Ekasten/demtools/" target="_parent">Demtools</a>
 | 
					 | 
				
			||||||
	- Map viewer
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.holometric.de/dimension/" target="_parent">DIMENSION</a>
 | 
					 | 
				
			||||||
	- freeform surface reconstruction
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.vectaport.com/vhclmaps/demviewer.html" target="_parent">demviewer</a>
 | 
					 | 
				
			||||||
	- interactive terrain viewer
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.crc.ca/FreeWRL" target="_parent">FreeWRL</a> - VRML browser
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.geomview.org/" target="_parent">Geomview</a> - 3-D geometry
 | 
					 | 
				
			||||||
	exploration
 | 
					 | 
				
			||||||
	</li><li><a href="http://innovation3d.sourceforge.net/" target="_parent">Innovation3D</a>
 | 
					 | 
				
			||||||
	- 3D modeling program
 | 
					 | 
				
			||||||
	</li><li><a href="http://mesa3d.sourceforge.net/notfound.html" target="_parent">KWRL</a> - VRML browser
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.vermontel.com/%7Ecmorley/vrml.html" target="_parent">LibVRML97/Lookat</a>
 | 
					 | 
				
			||||||
	- VRML viewer
 | 
					 | 
				
			||||||
	</li><li><a href="http://aig.cs.man.ac.uk/systems/Maverik/" target="_parent">Maverik</a>
 | 
					 | 
				
			||||||
	- VR graphics and interaction system
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.swissquake.ch/chumb.alum-soft" target="_parent">MD2 Viewer</a>
 | 
					 | 
				
			||||||
	- View .MD2 files
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.megacads.dlr.de/" target="_parent">MegaCads</a>
 | 
					 | 
				
			||||||
	- Multiblock-Elliptic-Grid-Generation-And-CAD-System
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.swissquake.ch/chumbalum-soft/" target="_parent">MilkShape
 | 
					 | 
				
			||||||
	3D</a> - 3D modeler/animator
 | 
					 | 
				
			||||||
	</li><li><a href="http://mindseye.sourceforge.net/" target="_parent">Mindseye</a> - Rendering/Modeling
 | 
					 | 
				
			||||||
	Package
 | 
					 | 
				
			||||||
	</li><li><a href="http://mesa3d.sourceforge.net/notfound.html">Moonlight Atelier</a> - modeling and rendering package
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.bittco.com/" target="_parent">NetReality</a> - Virtual Reality
 | 
					 | 
				
			||||||
	web organizer
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.sim.no/reducer.html" target="_parent">Rational Reducer</a>
 | 
					 | 
				
			||||||
	- polygon reduction tool
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.cs.kuleuven.ac.be/cwis/research/graphics/RENDERPARK/" target="_parent">RenderPark</a>
 | 
					 | 
				
			||||||
	- photorealistic rendering
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.hardgeus.com/revolution" target="_parent">Revolution 3D Engine</a>
 | 
					 | 
				
			||||||
	- .3ds rendering engine
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.dgp.toronto.edu/%7Emjmcguff/eversion/" target="_parent">sphereEversion</a>
 | 
					 | 
				
			||||||
	- inside-out sphere visualization
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.cs.kuleuven.ac.be/cwis/research/graphics/3DOM/" target="_parent">3Dom</a>
 | 
					 | 
				
			||||||
	- 3-D modeler
 | 
					 | 
				
			||||||
	</li><li><a href="http://mesa3d.sourceforge.net/notfound.html">3D Studio file viewer</a> - by David Farrell
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.microform.se/" target="_parent">VARKON</a> - product engineering,
 | 
					 | 
				
			||||||
	design, modeling
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.sim.no/vrmlview.html" target="_parent">VRMLview</a> - VRML
 | 
					 | 
				
			||||||
	model viewer
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.iicm.edu/vrwave/" target="_parent">VRWave</a> - a VRML 2.0
 | 
					 | 
				
			||||||
	browser
 | 
					 | 
				
			||||||
	</li><li><a href="http://mesa3d.sourceforge.net/notfound.html">VRweb</a> - VRML browser
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.csv.ica.uni-stuttgart.de/vrml/dune/" target="_parent">white_dune</a>
 | 
					 | 
				
			||||||
	- graphical VRML97 Editor and animation tool
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.wings3d.org/" target="_parent">Wings 3D</a> - static 3D modeller
 | 
					 | 
				
			||||||
	with VRML export.  Uses SDL library.
 | 
					 | 
				
			||||||
</li></ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body></html>
 | 
					 | 
				
			||||||
							
								
								
									
										678
									
								
								docs/news.html
									
									
									
									
									
								
							
							
						
						
									
										678
									
								
								docs/news.html
									
									
									
									
									
								
							@@ -1,678 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Mesa News</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>News</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>September 5, 2003</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Mesa 5.0.2 has been released.  This is a stable, bug-fix release.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
    Bug fixes:
 | 
					 | 
				
			||||||
	- fixed texgen problem causing texcoord's Q to be zero (stex3d)
 | 
					 | 
				
			||||||
	- default GL_TEXTURE_COMPARE_MODE_ARB was wrong
 | 
					 | 
				
			||||||
	- GL_CURRENT_MATRIX_NV query was wrong
 | 
					 | 
				
			||||||
	- GL_CURRENT_MATRIX_STACK_DEPTH_NV query was off by one
 | 
					 | 
				
			||||||
	- GL_LIST_MODE query wasn't correct
 | 
					 | 
				
			||||||
	- GL_FOG_COORDINATE_SOURCE_EXT query wasn't supported
 | 
					 | 
				
			||||||
	- GL_SECONDARY_COLOR_ARRAY_SIZE_EXT query returned wrong value
 | 
					 | 
				
			||||||
	- blended, wide lines didn't always work correctly (bug 711595)
 | 
					 | 
				
			||||||
	- glVertexAttrib4svNV w component was always 1
 | 
					 | 
				
			||||||
	- fixed bug in GL_IBM_rasterpos_clip (missing return)
 | 
					 | 
				
			||||||
	- GL_DEPTH_TEXTURE_MODE = GL_ALPHA didn't work correctly
 | 
					 | 
				
			||||||
	- a few Solaris compilation fixes
 | 
					 | 
				
			||||||
	- fixed glClear() problem for DRI drivers (non-existant stencil, etc)
 | 
					 | 
				
			||||||
	- fixed int/REAL mixup in GLU NURBS curve evaluator (Eric Cazeaux)
 | 
					 | 
				
			||||||
	- fixed delete [] bug in SI GLU (bug 721765) (Diego Santa Cruz)
 | 
					 | 
				
			||||||
	- glFog() didn't clamp fog colors
 | 
					 | 
				
			||||||
	- fixed bad float/int conversion for GL_TEXTURE_PRIORITY in the
 | 
					 | 
				
			||||||
	  gl[Get]TexParameteri[v] functions
 | 
					 | 
				
			||||||
	- fixed invalid memory references in glTexGen functions (bug 781602)
 | 
					 | 
				
			||||||
	- integer-valued color arrays weren't handled correctly
 | 
					 | 
				
			||||||
	- glDrawPixels(GL_DEPTH_COMPONENT) with glPixelZoom didn't work
 | 
					 | 
				
			||||||
	- GL_EXT_texture_lod_bias is part of 1.4, overlooked in 5.0.1
 | 
					 | 
				
			||||||
    Changes:
 | 
					 | 
				
			||||||
	- build GLUT with -fexceptions so C++ apps propogate exceptions
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
MD5 checksums follow:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
2deb4176e7a06a0477ae31cadd55444b  MesaLib-5.0.2.tar.gz
 | 
					 | 
				
			||||||
dc147598ebdff4312260a7f79b3c5c9c  MesaLib-5.0.2.tar.bz2
 | 
					 | 
				
			||||||
1eb0fa7079131efef574e3bda328b8c8  MesaLib-5.0.2.zip
 | 
					 | 
				
			||||||
e0dc86e9417620e794968641403604d4  MesaDemos-5.0.2.tar.gz
 | 
					 | 
				
			||||||
a71afaeddd0b567423f88085576850d3  MesaDemos-5.0.2.tar.bz2
 | 
					 | 
				
			||||||
32fbf1925cf45f548468ddda96087828  MesaDemos-5.0.2.zip
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>June 2003</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Mesa's directory tree has been overhauled.
 | 
					 | 
				
			||||||
Things are better organized now with some thought toward future needs.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
In CVS, the latest Mesa 5.1 development code is now rooted under the
 | 
					 | 
				
			||||||
<b>Mesa-newtree/</b> directory.  The old top-level <b>Mesa/</b> directory
 | 
					 | 
				
			||||||
holds the Mesa 5.0.x code which will be abandoned at some point.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>March 30, 2003</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Mesa 5.0.1 has been released.  This is a stable, bug-fix release.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
    New:
 | 
					 | 
				
			||||||
	- DOS driver updates from Daniel Borca
 | 
					 | 
				
			||||||
	- updated GL/gl_mangle.h file (Bill Hoffman)
 | 
					 | 
				
			||||||
    Bug fixes:
 | 
					 | 
				
			||||||
	- auto mipmap generation for cube maps was broken (bug 641363)
 | 
					 | 
				
			||||||
	- writing/clearing software alpha channels was unreliable
 | 
					 | 
				
			||||||
	- minor compilation fixes for OS/2 (Evgeny Kotsuba)
 | 
					 | 
				
			||||||
	- fixed some bad assertions found with shadowtex demo
 | 
					 | 
				
			||||||
	- fixed error checking bug in glCopyTexSubImage2D (bug 659020)
 | 
					 | 
				
			||||||
	- glRotate(angle, -x, 0, 0) was incorrect (bug 659677)
 | 
					 | 
				
			||||||
	- fixed potential segfault in texture object validation (bug 659012)
 | 
					 | 
				
			||||||
	- fixed some bogus code in _mesa_test_os_sse_exception_support (Linus)
 | 
					 | 
				
			||||||
	- fix fog stride bug in tnl code for h/w drivers (Michel Danzer)
 | 
					 | 
				
			||||||
	- fixed glActiveTexture / glMatrixMode(GL_TEXTURE) bug (#669080)
 | 
					 | 
				
			||||||
	- glGet(GL_CURRENT_SECONDARY_COLOR) should return 4 values, not 3
 | 
					 | 
				
			||||||
	- fixed compilation problem on Solaris7/x86 (bug 536406)
 | 
					 | 
				
			||||||
	- fixed prefetch bug in 3DNow! code (Felix Kuhling)
 | 
					 | 
				
			||||||
	- fixed NeXT build problem (FABSF macro)
 | 
					 | 
				
			||||||
	- glDrawPixels Z values when glPixelZoom!=1 were invalid (bug 687811)
 | 
					 | 
				
			||||||
	- zoomed glDraw/CopyPixels with clipping sometimes failed (bug 689964)
 | 
					 | 
				
			||||||
	- AA line and triangle Z values are now rounded, not truncated
 | 
					 | 
				
			||||||
	- fixed color interpolation bug when GLchan==GLfloat (bug 694461)
 | 
					 | 
				
			||||||
	- glArePrograms/TexturesResident() wasn't 100% correct (Jose Fonseca)
 | 
					 | 
				
			||||||
	- fixed a minor GL_COLOR_MATERIAL bug
 | 
					 | 
				
			||||||
	- NV vertex program EXP instruction was broken
 | 
					 | 
				
			||||||
	- glColorMask misbehaved with X window / pixmap rendering
 | 
					 | 
				
			||||||
	- fix autoconf/libtool GLU C++ linker problem on Linux (a total hack)
 | 
					 | 
				
			||||||
	- attempt to fix GGI compilation problem when MesaDemos not present
 | 
					 | 
				
			||||||
	- NV vertex program ARL-relative fetches didn't work
 | 
					 | 
				
			||||||
    Changes:
 | 
					 | 
				
			||||||
	- use glPolygonOffset in gloss demo to avoid z-fighting artifacts
 | 
					 | 
				
			||||||
	- updated winpos and pointblast demos to use ARB extensions
 | 
					 | 
				
			||||||
	- disable SPARC normal transformation code (bug 673938)
 | 
					 | 
				
			||||||
	- GLU fixes for OS/2 (Evgeny Kotsuba)
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
MD5 checksums follow:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
b80f8b5d53a3e9f19b9fde5af0c542f0  MesaLib-5.0.1.tar.gz
 | 
					 | 
				
			||||||
513b4bbd7d38951f05027179063d876b  MesaLib-5.0.1.tar.bz2
 | 
					 | 
				
			||||||
eebd395678f4520d33b267e5d5c22651  MesaLib-5.0.1.zip
 | 
					 | 
				
			||||||
49d7feaec6dc1d2091d7c3cc72a9b320  MesaDemos-5.0.1.tar.gz
 | 
					 | 
				
			||||||
37190374a98c3c892f0698be9ca3acf0  MesaDemos-5.0.1.tar.bz2
 | 
					 | 
				
			||||||
becd8bf17f5791361b4a54ba2a78e5c9  MesaDemos-5.0.1.zip
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>March 7, 2003</h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Website and documentation overhaul.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The website content and Mesa documentation (from the doc/ directory) have
 | 
					 | 
				
			||||||
been merged together.
 | 
					 | 
				
			||||||
All the documentation files have been entered into the CVS repository.
 | 
					 | 
				
			||||||
Many of the old plain-text files have been converted to html and modernized.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>November 13, 2002</h2>
 | 
					 | 
				
			||||||
<p>Mesa 5.0 has been released.  This is a stable release which
 | 
					 | 
				
			||||||
implements the OpenGL 1.4 specification.
 | 
					 | 
				
			||||||
</p><pre>New:
 | 
					 | 
				
			||||||
    - OpenGL 1.4 support (glGetString(GL_VERSION) returns "1.4")
 | 
					 | 
				
			||||||
    - removed some overlooked debugging code
 | 
					 | 
				
			||||||
    - glxinfo updated to support GLX_ARB_multisample
 | 
					 | 
				
			||||||
    - GLUT now support GLX_ARB_multisample
 | 
					 | 
				
			||||||
    - updated DOS driver (Daniel Borca)
 | 
					 | 
				
			||||||
Bug fixes:
 | 
					 | 
				
			||||||
    - GL_POINT and GL_LINE-mode polygons didn't obey cull state
 | 
					 | 
				
			||||||
    - fixed potential bug in _mesa_align_malloc/calloc()
 | 
					 | 
				
			||||||
    - fixed missing triangle bug when running vertex programs
 | 
					 | 
				
			||||||
    - fixed a few HPUX compilation problems
 | 
					 | 
				
			||||||
    - FX (Glide) driver didn't compile
 | 
					 | 
				
			||||||
    - setting GL_TEXTURE_BORDER_COLOR with glTexParameteriv() didn't work
 | 
					 | 
				
			||||||
    - a few EXT functions, like glGenTexturesEXT, were no-ops
 | 
					 | 
				
			||||||
    - a few OpenGL 1.4 functions like glFogCoord*, glBlendFuncSeparate,
 | 
					 | 
				
			||||||
      glMultiDrawArrays and glMultiDrawElements were missing
 | 
					 | 
				
			||||||
    - glGet*(GL_ACTIVE_STENCIL_FACE_EXT) was broken
 | 
					 | 
				
			||||||
    - Pentium 4 Mobile was mistakenly identified as having 3DNow!
 | 
					 | 
				
			||||||
    - fixed one-bit error in point/line fragment Z calculation
 | 
					 | 
				
			||||||
    - fixed potential segfault in fakeglx code
 | 
					 | 
				
			||||||
    - fixed color overflow problem in DOT3 texture env mode
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>October 29, 2002</h2>
 | 
					 | 
				
			||||||
<p>Mesa 4.1 has been released.  This is a new development release.
 | 
					 | 
				
			||||||
For a stable release, get 4.0.4.
 | 
					 | 
				
			||||||
</p><pre>New:
 | 
					 | 
				
			||||||
    - GL_NV_vertex_program extension
 | 
					 | 
				
			||||||
    - GL_NV_vertex_program1_1 extension
 | 
					 | 
				
			||||||
    - GL_ARB_window_pos extension
 | 
					 | 
				
			||||||
    - GL_ARB_depth_texture extension
 | 
					 | 
				
			||||||
    - GL_ARB_shadow extension
 | 
					 | 
				
			||||||
    - GL_ARB_shadow_ambient extension
 | 
					 | 
				
			||||||
    - GL_EXT_shadow_funcs extension
 | 
					 | 
				
			||||||
    - GL_ARB_point_parameters extension
 | 
					 | 
				
			||||||
    - GL_ARB_texture_env_crossbar
 | 
					 | 
				
			||||||
    - GL_NV_point_sprite extension
 | 
					 | 
				
			||||||
    - GL_NV_texture_rectangle extension
 | 
					 | 
				
			||||||
    - GL_EXT_multi_draw_arrays extension
 | 
					 | 
				
			||||||
    - GL_EXT_stencil_two_side extension
 | 
					 | 
				
			||||||
    - GLX_SGIX_fbconfig and GLX_SGIX_pbuffer extensions
 | 
					 | 
				
			||||||
    - GL_ATI_texture_mirror_once extension (Ian Romanick)
 | 
					 | 
				
			||||||
    - massive overhaul/simplification of software rasterizer module,
 | 
					 | 
				
			||||||
      many contributions from Klaus Niederkrueger
 | 
					 | 
				
			||||||
    - faster software texturing in some cases (i.e. trilinear filtering)
 | 
					 | 
				
			||||||
    - new OSMesaGetProcAddress() function
 | 
					 | 
				
			||||||
    - more blend modes implemented with MMX code (Jose Fonseca)
 | 
					 | 
				
			||||||
    - added glutGetProcAddress() to GLUT
 | 
					 | 
				
			||||||
    - added GLUT_FPS env var to compute frames/second in glutSwapBuffers()
 | 
					 | 
				
			||||||
    - pbinfo and pbdemo PBuffer programs
 | 
					 | 
				
			||||||
    - glxinfo -v prints transprent pixel info (Gerd Sussner)
 | 
					 | 
				
			||||||
Bug fixes:
 | 
					 | 
				
			||||||
    - better mipmap LOD computation (prevents excessive blurriness)
 | 
					 | 
				
			||||||
    - OSMesaMakeCurrent() didn't recognize buffer size changes
 | 
					 | 
				
			||||||
    - assorted conformance fixes for 16-bit/channel rendering
 | 
					 | 
				
			||||||
    - texcombine alpha subtraction mode was broken
 | 
					 | 
				
			||||||
    - fixed some blend problems when GLchan==GLfloat (Gerk Huisma)
 | 
					 | 
				
			||||||
    - clamp colors to [0,1] in OSMesa if GLchan==GLfloat (Gerk Huisma)
 | 
					 | 
				
			||||||
    - fixed divide by zero error in NURBS tessellator (Jon Perry)
 | 
					 | 
				
			||||||
    - fixed GL_LINEAR fog bug by adding clamping
 | 
					 | 
				
			||||||
    - fixed FP exceptions found using Alpha CPU
 | 
					 | 
				
			||||||
    - 3dfx/glide driver render-to-window feature was broken
 | 
					 | 
				
			||||||
    - added missing GLX_TRANSPARENT_RGB token to glx.h
 | 
					 | 
				
			||||||
    - fixed error checking related to paletted textures
 | 
					 | 
				
			||||||
    - fixed reference count error in glDeleteTextures (Randy Fayan)
 | 
					 | 
				
			||||||
Changes:
 | 
					 | 
				
			||||||
    - New spec file and Python code to generate some GL dispatch files
 | 
					 | 
				
			||||||
    - Glide driver defaults to "no" with autoconf/automake
 | 
					 | 
				
			||||||
    - floating point color channels now clamped to [0,inf)
 | 
					 | 
				
			||||||
    - updated demos/stex3d with new options
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>October 4, 2002</h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The <a href="http://mesa3d.sourceforge.net/docs/MesaFAQ.html">Mesa FAQ</a> has been rewritten.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>October 3, 2002</h2>
 | 
					 | 
				
			||||||
<p>Mesa 4.0.4 has been released.  This is a stable bug-fix release.
 | 
					 | 
				
			||||||
</p><pre>    New:
 | 
					 | 
				
			||||||
	- GL_NV_texture_rectangle extension
 | 
					 | 
				
			||||||
	- updated glext.h header (version 17)
 | 
					 | 
				
			||||||
	- updated DOS driver (Daniel Borca)
 | 
					 | 
				
			||||||
	- updated BeOS R5 driver (Philippe Houdoin)
 | 
					 | 
				
			||||||
	- added GL_IBM_texture_mirror_repeat
 | 
					 | 
				
			||||||
	- glxinfo now takes -l option to print interesting OpenGL limits info
 | 
					 | 
				
			||||||
	- GL_MESA_ycbcr_texture extension
 | 
					 | 
				
			||||||
	- GL_APPLE_client_storage extension (for some DRI drivers only)
 | 
					 | 
				
			||||||
	- GL_MESA_pack_invert extension
 | 
					 | 
				
			||||||
    Bug fixes:
 | 
					 | 
				
			||||||
	- fixed GL_LINEAR fog bug by adding clamping
 | 
					 | 
				
			||||||
	- fixed FP exceptions found using Alpha CPU
 | 
					 | 
				
			||||||
	- 3dfx MESA_GLX_FX=window (render to window) didn't work
 | 
					 | 
				
			||||||
	- fixed memory leak in wglCreateContest (Karl Schultz)
 | 
					 | 
				
			||||||
	- define GLAPIENTRY and GLAPI if undefined in glu.h
 | 
					 | 
				
			||||||
	- wglGetProcAddress didn't handle all API functions
 | 
					 | 
				
			||||||
	- when testing for OpenGL 1.2 vs 1.3, check for GL_ARB_texture_cube_map
 | 
					 | 
				
			||||||
	- removed GL_MAX_CONVOLUTION_WIDTH/HEIGHT from glGetInteger/Float/etc()
 | 
					 | 
				
			||||||
	- error checking in compressed tex image functions had some glitches
 | 
					 | 
				
			||||||
	- fixed AIX compile problem in src/config.c
 | 
					 | 
				
			||||||
	- glGetTexImage was using pixel unpacking instead of packing params
 | 
					 | 
				
			||||||
	- auto-mipmap generation for cube maps was incorrect
 | 
					 | 
				
			||||||
    Changes:
 | 
					 | 
				
			||||||
	- max texture units reduced to six to accomodate texture rectangles
 | 
					 | 
				
			||||||
	- removed unfinished GL_MESA_sprite_point extension code
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>June 25, 2002</h2>
 | 
					 | 
				
			||||||
<p>Mesa 4.0.3 has been released.  This is a stable bug-fix release.
 | 
					 | 
				
			||||||
</p><pre>    New:
 | 
					 | 
				
			||||||
    - updated GL/glext.h file (version 15)
 | 
					 | 
				
			||||||
    - corrected MMX blend code (Jose Fonseca)
 | 
					 | 
				
			||||||
    - support for software-based alpha planes in Windows driver
 | 
					 | 
				
			||||||
    - updated GGI driver (Filip Spacek)
 | 
					 | 
				
			||||||
    Bug fixes:
 | 
					 | 
				
			||||||
    - glext.h had wrong values for GL_DOT3_RGB[A]_EXT tokens
 | 
					 | 
				
			||||||
    - OSMesaMakeCurrent() didn't recognize buffer size changes
 | 
					 | 
				
			||||||
    - assorted conformance fixes for 16-bit/channel rendering
 | 
					 | 
				
			||||||
    - texcombine alpha subtraction mode was broken
 | 
					 | 
				
			||||||
    - fixed lighting bug with non-uniform scaling and display lists
 | 
					 | 
				
			||||||
    - fixed bug when deleting shared display lists
 | 
					 | 
				
			||||||
    - disabled SPARC cliptest assembly code (Mesa bug 544665)
 | 
					 | 
				
			||||||
    - fixed a couple Solaris compilation/link problems
 | 
					 | 
				
			||||||
    - blending clipped glDrawPixels didn't always work
 | 
					 | 
				
			||||||
    - glGetTexImage() didn't accept packed pixel types
 | 
					 | 
				
			||||||
    - glPixelMapu[is]v() could explode given too large of pixelmap
 | 
					 | 
				
			||||||
    - glGetTexParameter[if]v() didn't accept GL_TEXTURE_MAX_ANISOTROPY_EXT
 | 
					 | 
				
			||||||
    - glXCopyContext() could lead to segfaults
 | 
					 | 
				
			||||||
    - glCullFace(GL_FRONT_AND_BACK) didn't work (bug 572665)
 | 
					 | 
				
			||||||
    Changes:
 | 
					 | 
				
			||||||
    - lots of C++ (g++) code clean-ups
 | 
					 | 
				
			||||||
    - lots of T&L updates for the Radeon DRI driver
 | 
					 | 
				
			||||||
    Known bugs:
 | 
					 | 
				
			||||||
    - mipmap LOD computation (fixed for Mesa 4.1)
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>April 2, 2002</h2>
 | 
					 | 
				
			||||||
<p>Mesa 4.0.2 has been released.  This is a stable bug-fix release.
 | 
					 | 
				
			||||||
</p><pre>    New:
 | 
					 | 
				
			||||||
      - New DOS (DJGPP) driver written by Daniel Borca
 | 
					 | 
				
			||||||
      - New driver interface functions for TCL drivers (such as Radeon DRI)
 | 
					 | 
				
			||||||
      - GL_RENDERER string returns "Mesa Offscreen16" or "Mesa Offscreen32"
 | 
					 | 
				
			||||||
        if using deep color channels
 | 
					 | 
				
			||||||
      - latest GL/glext.h and GL/glxext.h headers from SGI
 | 
					 | 
				
			||||||
    Bug fixes:
 | 
					 | 
				
			||||||
      - GL_BLEND with non-black texture env color wasn't always correct
 | 
					 | 
				
			||||||
      - GL_REPLACE with GL_RGB texture format wasn't always correct (alpha)
 | 
					 | 
				
			||||||
      - glTexEnviv( pname != GL_TEXTURE_ENV_COLOR ) was broken
 | 
					 | 
				
			||||||
      - glReadPixels was sometimes mistakenly clipped by the scissor box
 | 
					 | 
				
			||||||
      - glDraw/ReadPixels didn't catch all the errors that they should have
 | 
					 | 
				
			||||||
      - Fixed 24bpp rendering problem in Windows driver (Karl Schultz)
 | 
					 | 
				
			||||||
      - 16-bit GLchan mode fixes (m_trans_tmp.h, s_triangle.c)
 | 
					 | 
				
			||||||
      - Fixed 1-bit float->int conversion bug in glDrawPixels(GL_DEPTH_COMP)
 | 
					 | 
				
			||||||
      - glColorMask as sometimes effecting glXSwapBuffers()
 | 
					 | 
				
			||||||
      - fixed a potential bug in XMesaGarbageCollect()
 | 
					 | 
				
			||||||
      - N threads rendering into one window didn't work reliably
 | 
					 | 
				
			||||||
      - glCopyPixels didn't work for deep color channels
 | 
					 | 
				
			||||||
      - improved 8 -> 16bit/channel texture image conversion (Gerk Huisma)
 | 
					 | 
				
			||||||
      - glPopAttrib() didn't correctly restore user clip planes
 | 
					 | 
				
			||||||
      - user clip planes failed for some perspective projections (Chromium)
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>December 17, 2001</h2>
 | 
					 | 
				
			||||||
<p>Mesa 4.0.1 has been released.  This is a stable bug-fix release.
 | 
					 | 
				
			||||||
</p><pre>    New:
 | 
					 | 
				
			||||||
      - better sub-pixel sample positions for AA triangles (Ray Tice)
 | 
					 | 
				
			||||||
      - slightly faster blending for (GL_ZERO, GL_ONE) and (GL_ONE, GL_ZERO)
 | 
					 | 
				
			||||||
    Bug fixes:
 | 
					 | 
				
			||||||
      - added missing break statements in glGet*() for multisample cases
 | 
					 | 
				
			||||||
      - fixed uninitialized hash table mutex bug (display lists / texobjs)
 | 
					 | 
				
			||||||
      - fixed bad teximage error check conditional (bug 476846)
 | 
					 | 
				
			||||||
      - fixed demos readtex.c compilation problem on Windows (Karl Schultz)
 | 
					 | 
				
			||||||
      - added missing glGet() query for GL_MAX_TEXTURE_LOD_BIAS_EXT
 | 
					 | 
				
			||||||
      - silence some compiler warnings (gcc 2.96)
 | 
					 | 
				
			||||||
      - enable the #define GL_VERSION_1_3 in GL/gl.h
 | 
					 | 
				
			||||||
      - added GL 1.3 and GLX 1.4 entries to gl_mangle.h and glx_mangle.h
 | 
					 | 
				
			||||||
      - fixed glu.h typedef problem found with MSDev 6.0
 | 
					 | 
				
			||||||
      - build libGL.so with -Bsymbolic (fixes bug found with Chromium)
 | 
					 | 
				
			||||||
      - added missing 'const' to glXGetContextIDEXT() in glxext.h
 | 
					 | 
				
			||||||
      - fixed a few glXGetProcAddress() errors (texture compression, etc)
 | 
					 | 
				
			||||||
      - fixed start index bug in compiled vertex arrays (Keith)
 | 
					 | 
				
			||||||
      - fixed compilation problems in src/SPARC/glapi_sparc.S
 | 
					 | 
				
			||||||
      - fixed triangle strip "parity" bug found in VTK medical1 demo (Keith)
 | 
					 | 
				
			||||||
      - use glXGetProcAddressARB in GLUT to avoid extension linking problems
 | 
					 | 
				
			||||||
      - provoking vertex of flat-shaded, color-index triangles was wrong
 | 
					 | 
				
			||||||
      - fixed a few display list bugs (GLUT walker, molecule, etc) (Keith)
 | 
					 | 
				
			||||||
      - glTexParameter didn't flush the vertex buffer (Ray Tice)
 | 
					 | 
				
			||||||
      - feedback attributes for glDraw/CopyPixels and glBitmap were wrong
 | 
					 | 
				
			||||||
      - fixed bug in normal length caching (ParaView lighting bug)
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>October 22, 2001</h2>
 | 
					 | 
				
			||||||
<p>Mesa 4.0 has been released.  This is a stable release.
 | 
					 | 
				
			||||||
</p><pre>    New:
 | 
					 | 
				
			||||||
      - Mesa 4.0 implements the OpenGL 1.3 specification
 | 
					 | 
				
			||||||
      - GL_IBM_rasterpos_clip extension
 | 
					 | 
				
			||||||
      - GL_EXT_texture_edge_clamp extension (aka GL_SGIS_texture_edge_clamp)
 | 
					 | 
				
			||||||
      - GL_ARB_texture_mirrored_repeat extension
 | 
					 | 
				
			||||||
      - WindML UGL driver (Stephane Raimbault)
 | 
					 | 
				
			||||||
      - added OSMESA_MAX_WIDTH/HEIGHT queries
 | 
					 | 
				
			||||||
      - attempted compiliation fixes for Solaris 5, 7 and 8
 | 
					 | 
				
			||||||
      - updated glext.h and glxext.h files
 | 
					 | 
				
			||||||
      - updated Windows driver (Karl Schultz)
 | 
					 | 
				
			||||||
    Bug fixes:
 | 
					 | 
				
			||||||
      - added some missing GLX 1.3 tokens to include/GL/glx.h
 | 
					 | 
				
			||||||
      - GL_COLOR_MATRIX changes weren't recognized by teximage functions
 | 
					 | 
				
			||||||
      - glCopyPixels with scale and bias was broken
 | 
					 | 
				
			||||||
      - glRasterPos with lighting could segfault
 | 
					 | 
				
			||||||
      - glDeleteTextures could leave a dangling pointer
 | 
					 | 
				
			||||||
      - Proxy textures for cube maps didn't work
 | 
					 | 
				
			||||||
      - fixed a number of 16-bit color channel bugs
 | 
					 | 
				
			||||||
      - fixed a few minor memory leaks
 | 
					 | 
				
			||||||
      - GLX context sharing was broken in 3.5
 | 
					 | 
				
			||||||
      - fixed state-update bugs in glPopClientAttrib()
 | 
					 | 
				
			||||||
      - fixed glDrawRangeElements() bug
 | 
					 | 
				
			||||||
      - fixed a glPush/PopAttrib() bug related to texture binding
 | 
					 | 
				
			||||||
      - flat-shaded, textured lines were broken
 | 
					 | 
				
			||||||
      - fixed a dangling pointer problem in the XMesa code (Chris Burghart)
 | 
					 | 
				
			||||||
      - lighting didn't always produce the correct alpha value
 | 
					 | 
				
			||||||
      - fixed 3DNow! code to not read past end of arrays (Andrew Lewycky)
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>June 21, 2001</h2>
 | 
					 | 
				
			||||||
<p>Mesa 3.5 has been released.  This is a new development release.
 | 
					 | 
				
			||||||
</p><pre>    New:
 | 
					 | 
				
			||||||
	- internals of Mesa divided into modular pieces (Keith Whitwell)
 | 
					 | 
				
			||||||
	- 100% OpenGL 1.2 conformance (passes all conformance tests)
 | 
					 | 
				
			||||||
	- new AA line algorithm
 | 
					 | 
				
			||||||
	- GL_EXT_convolution extension
 | 
					 | 
				
			||||||
        - GL_ARB_imaging subset
 | 
					 | 
				
			||||||
        - OSMesaCreateContextExt() function
 | 
					 | 
				
			||||||
        - GL_ARB_texture_env_add extension (same as GL_EXT_texture_env_add)
 | 
					 | 
				
			||||||
        - GL_MAX_TEXTURE_UNITS_ARB now defaults to eight
 | 
					 | 
				
			||||||
        - GL_EXT_fog_coord extension (Keith Whitwell)
 | 
					 | 
				
			||||||
        - GL_EXT_secondary_color extension (Keith Whitwell)
 | 
					 | 
				
			||||||
        - GL_ARB_texture_env_add extension (same as GL_EXT_texture_env_add)
 | 
					 | 
				
			||||||
        - GL_SGIX_depth_texture extension
 | 
					 | 
				
			||||||
        - GL_SGIX_shadow and GL_SGIX_shadow_ambient extensions
 | 
					 | 
				
			||||||
        - demos/shadowtex.c demo of GL_SGIX_depth_texture and GL_SGIX_shadow
 | 
					 | 
				
			||||||
        - GL_ARB_texture_env_combine extension
 | 
					 | 
				
			||||||
        - GL_ARB_texture_env_dot3 extension
 | 
					 | 
				
			||||||
        - GL_ARB_texture_border_clamp (aka GL_SGIS_texture_border_clamp)
 | 
					 | 
				
			||||||
        - OSMesaCreateContextExt() function
 | 
					 | 
				
			||||||
        - libOSMesa.so library, contains the OSMesa driver interface
 | 
					 | 
				
			||||||
        - GL/glxext.h header file for GLX extensions
 | 
					 | 
				
			||||||
        - somewhat faster software texturing, fogging, depth testing
 | 
					 | 
				
			||||||
        - all color-index conformance tests now pass (only 8bpp tested)
 | 
					 | 
				
			||||||
        - SPARC assembly language TCL optimizations (David Miller)
 | 
					 | 
				
			||||||
        - GL_SGIS_generate_mipmap extension
 | 
					 | 
				
			||||||
    Bug Fixes:
 | 
					 | 
				
			||||||
        - fbiRev and tmuRev were unitialized when using Glide3
 | 
					 | 
				
			||||||
        - fixed a few color index mode conformance failures; all pass now
 | 
					 | 
				
			||||||
        - now appling antialiasing coverage to alpha after texturing
 | 
					 | 
				
			||||||
        - colors weren't getting clamped to [0,1] before color table lookup
 | 
					 | 
				
			||||||
        - fixed RISC alignment errors caused by COPY_4UBV macro
 | 
					 | 
				
			||||||
        - drawing wide, flat-shaded lines could cause a segfault
 | 
					 | 
				
			||||||
        - vertices now snapped to 1/16 pixel to fix rendering of tiny triangles
 | 
					 | 
				
			||||||
    Changes:
 | 
					 | 
				
			||||||
        - SGI's Sample Implementation (SI) 1.3 GLU library replaces Mesa GLU
 | 
					 | 
				
			||||||
        - new libOSMesa.so library, contains the OSMesa driver interface
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>May 17, 2001</h2>
 | 
					 | 
				
			||||||
<p>Mesa 3.4.2 has been released.  This is basically just a bug-fix release.
 | 
					 | 
				
			||||||
Here's what's new:</p>
 | 
					 | 
				
			||||||
<pre>    Bug fixes:
 | 
					 | 
				
			||||||
        - deleting the currently bound texture could cause bad problems
 | 
					 | 
				
			||||||
        - using fog could result in random vertex alpha values
 | 
					 | 
				
			||||||
         - AA triangle rendering could touch pixels outside right window bound
 | 
					 | 
				
			||||||
        - fixed byteswapping problem in clear_32bit_ximage() function
 | 
					 | 
				
			||||||
        - fixed bugs in wglUseFontBitmapsA(), by Frank Warmerdam
 | 
					 | 
				
			||||||
        - fixed memory leak in glXUseXFont()
 | 
					 | 
				
			||||||
        - fragment sampling in AA triangle function was off by 1/2 pixel
 | 
					 | 
				
			||||||
        - Windows: reading pixels from framebuffer didn't always work
 | 
					 | 
				
			||||||
        - glConvolutionFilter2D could segfault or cause FP exception
 | 
					 | 
				
			||||||
        - fixed segfaults in FX and X drivers when using tex unit 1 but not 0
 | 
					 | 
				
			||||||
        - GL_NAND logicop didn't work right in RGBA mode
 | 
					 | 
				
			||||||
        - fixed a memory corruption bug in vertex buffer reset code
 | 
					 | 
				
			||||||
        - clearing the softwara alpha buffer with scissoring was broken
 | 
					 | 
				
			||||||
        - fixed a few color index mode fog bugs
 | 
					 | 
				
			||||||
        - fixed some bad assertions in color index mode
 | 
					 | 
				
			||||||
        - fixed FX line 'stipple' bug #420091
 | 
					 | 
				
			||||||
    Changes:
 | 
					 | 
				
			||||||
        - optimized writing mono-colored pixel spans to X pixmaps
 | 
					 | 
				
			||||||
        - increased max viewport size to 2048 x 2048
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>April 29, 2001</h2>
 | 
					 | 
				
			||||||
<p>New Mesa website</p>
 | 
					 | 
				
			||||||
<p>Mark Manning produced the new website.<br>Thanks, Mark!</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>February 14, 2001</h2>
 | 
					 | 
				
			||||||
<p>Mesa 3.4.1 has been released.  Here's what's new:</p>
 | 
					 | 
				
			||||||
<pre>    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
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
</p><h2>November 3, 2000</h2>
 | 
					 | 
				
			||||||
<p>Mesa 3.4 has been released. Here's what's new since the 3.3 release:</p>
 | 
					 | 
				
			||||||
<pre>    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
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
</p><h2>April 24, 2000</h2>
 | 
					 | 
				
			||||||
<p>Mesa 3.2 has been released. Here's what's new since the beta release:</p>
 | 
					 | 
				
			||||||
<pre>    Bug fixes:
 | 
					 | 
				
			||||||
    - fixed memcpy bugs in span.c
 | 
					 | 
				
			||||||
    - fixed missing glEnd problem in demos/tessdemo.c
 | 
					 | 
				
			||||||
    - fixed bug when clearing 24bpp Ximages
 | 
					 | 
				
			||||||
    - fixed clipping problem found in Unreal Tournament
 | 
					 | 
				
			||||||
    - fixed Loki's "ice bug" and "crazy triangles" seen in Heretic2
 | 
					 | 
				
			||||||
    - fixed Loki's 3dfx RGB vs BGR bug
 | 
					 | 
				
			||||||
    - fixed Loki's 3dfx smooth/flat shading bug in SoF
 | 
					 | 
				
			||||||
    Changes:
 | 
					 | 
				
			||||||
    - updated docs/README file
 | 
					 | 
				
			||||||
    - use bcopy() optimizations on FreeBSD
 | 
					 | 
				
			||||||
    - re-enabled the optimized persp_textured_triangle() function
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
</p><h2>March 23, 2000</h2>
 | 
					 | 
				
			||||||
<p>I've just upload the Mesa 3.2 beta 1 files to SourceForge at <a href="http://sourceforge.net/project/showfiles.php?group_id=3" target="_parent">http://sourceforge.net/project/filelist.php?group_id=3</a><a href="http://sourceforge.net/project/showfiles.php?group_id=3"></a></p>
 | 
					 | 
				
			||||||
<p>3.2 (note even number) is a stabilization release of Mesa 3.1 meaning it's mainly
 | 
					 | 
				
			||||||
just bug fixes.</p>
 | 
					 | 
				
			||||||
<p>Here's what's changed:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</p><ul>
 | 
					 | 
				
			||||||
	Bug fixes:
 | 
					 | 
				
			||||||
	<ul>
 | 
					 | 
				
			||||||
		- mixed drawing of lines and bitmaps sometimes had wrong colors<br>
 | 
					 | 
				
			||||||
		- added missing glHintPGI() function<br>
 | 
					 | 
				
			||||||
		- fixed a polygon culling bug<br>
 | 
					 | 
				
			||||||
		- fixed bugs in gluPartialDisk()<br>
 | 
					 | 
				
			||||||
		- Z values in selection mode were wrong<br>
 | 
					 | 
				
			||||||
		- added missing tokens:
 | 
					 | 
				
			||||||
		<ul>
 | 
					 | 
				
			||||||
			GL_SMOOTH_POINT_SIZE_RANGE<br>
 | 
					 | 
				
			||||||
			GL_SMOOTH_POINT_SIZE_GRANULARITY<br>
 | 
					 | 
				
			||||||
			GL_SMOOTH_LINE_WIDTH_RANGE<br>
 | 
					 | 
				
			||||||
			GL_SMOOTH_LINE_WIDTH_GRANULARITY<br>
 | 
					 | 
				
			||||||
			GL_ALIASED_POINT_SIZE_RANGE<br>
 | 
					 | 
				
			||||||
			GL_ALIASED_LINE_WIDTH_RANGE
 | 
					 | 
				
			||||||
		</ul>
 | 
					 | 
				
			||||||
		- fixed glCopyPixels when copying from back to front buffer<br>
 | 
					 | 
				
			||||||
		- GL_EXT_compiled_vertex_array tokens had _SGI suffix instead of _EXT<br>
 | 
					 | 
				
			||||||
		- glDrawRangeElements(GL_LINES, 0, 1, 2, type, indices) was broken<br>
 | 
					 | 
				
			||||||
		- glDeleteTextures() didn't decrement reference count correctly<br>
 | 
					 | 
				
			||||||
		- GL_SRCA_ALPHA_SATURATE blend mode didn't work correctly<br>
 | 
					 | 
				
			||||||
		- Actual depth of transformation matrix stacks was off by one<br>
 | 
					 | 
				
			||||||
		- 24bpp visuals didn't address pixels correctly<br>
 | 
					 | 
				
			||||||
		- mipmap level of detail (lambda) calculation simplified, more accurate<br>
 | 
					 | 
				
			||||||
		- 101691 - Polygon clipping and GL_LINE<br>
 | 
					 | 
				
			||||||
		- 101928 - Polygon clipping and GL_LINE (same fix as above)<br>
 | 
					 | 
				
			||||||
		- 101808 - Non-glVertexArrays tristrip bug<br>
 | 
					 | 
				
			||||||
		- 101971 - find_last_3f on Dec OSF (worked around)<br>
 | 
					 | 
				
			||||||
		- 102369 - segv on dec osf (possibly a duplicate of the above)<br>
 | 
					 | 
				
			||||||
		- 102893 - orientations of modelview cause segfault
 | 
					 | 
				
			||||||
	</ul>
 | 
					 | 
				
			||||||
	New:
 | 
					 | 
				
			||||||
	<ul>
 | 
					 | 
				
			||||||
		- updated SVGA Linux driver<br>
 | 
					 | 
				
			||||||
		- added the MESA_FX_NO_SIGNALS env var, see docs/README.3DFX<br>
 | 
					 | 
				
			||||||
		- build libGLw.a (Xt/OpenGL drawing area widget) library by default<br>
 | 
					 | 
				
			||||||
		- changed -O2 to -O3 for a number of gcc configs
 | 
					 | 
				
			||||||
	</ul>
 | 
					 | 
				
			||||||
	Changes:
 | 
					 | 
				
			||||||
	<ul>
 | 
					 | 
				
			||||||
		- glXCopyContext's mask parameter is now unsigned long, per GLX spec
 | 
					 | 
				
			||||||
	</ul>
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Please report any problems with this release ASAP. Bugs should be filed on the
 | 
					 | 
				
			||||||
Mesa3D website at sourceforge.<br>
 | 
					 | 
				
			||||||
After 3.2 is wrapped up I hope to release 3.3 beta 1 soon afterward.</p>
 | 
					 | 
				
			||||||
<p>-- Brian</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
</p><h2>December 17, 1999</h2>
 | 
					 | 
				
			||||||
<p>A Slashdot interview with Brian about Mesa (questions submitted by Slashdot readers)
 | 
					 | 
				
			||||||
can be found at <a href="http://slashdot.org/interviews/99/12/17/0927212.shtml" target="_parent">http://slashdot.org/interviews/99/12/17/0927212.shtml</a>.</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
</p><h2>December 14, 1999</h2>
 | 
					 | 
				
			||||||
<p>Mesa 3.1 is released!</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
</p><h2>September 21, 1999</h2>
 | 
					 | 
				
			||||||
<p>There appear to be two new files on the ftp site, <a href="ftp://ftp.mesa3d.org/mesa/beta/MesaLib-3.1beta3.tar.gz">MesaLib-3.1beta3.tar.gz</a>
 | 
					 | 
				
			||||||
and <a href="ftp://ftp.mesa3d.org/mesa/beta/MesaDemos-3.1beta3.tar.gz">MesaDemos-3.1beta3.tar.gz</a>,
 | 
					 | 
				
			||||||
that seem to be... yes, I've just received confirmation from the beta center, they
 | 
					 | 
				
			||||||
are indeed the <b>THIRD</b> beta release of Mesa 3.1! Happy Days. Happy Days. Thanks
 | 
					 | 
				
			||||||
Keith Whitwell for preparing these for us during Brian's absence.</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
</p><h2>August 30, 1999</h2>
 | 
					 | 
				
			||||||
<p>I'm pleased to announce that I've accepted a position with Precision Insight,
 | 
					 | 
				
			||||||
Inc. effective October, 1999. I'll be leaving Avid Technology in September.</p>
 | 
					 | 
				
			||||||
<p>I've been working on Mesa in my spare time for over five years. With Precision
 | 
					 | 
				
			||||||
Insight I now have the opportunity to devote my full attention to advancing Mesa
 | 
					 | 
				
			||||||
and OpenGL on Linux.</p>
 | 
					 | 
				
			||||||
<p>While I'll be focused on Linux, the X Window System, and hardware acceleration,
 | 
					 | 
				
			||||||
my work will continue to be open sourced and available to any other programmers who
 | 
					 | 
				
			||||||
may want to contribute to it, or use it for other projects or platforms</p>
 | 
					 | 
				
			||||||
<p>PS: I'm going to be traveling until Sep 6 and won't be reading email until then.</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
</p><h2>August 23, 1999</h2>
 | 
					 | 
				
			||||||
<p>Anonymous CVS access is back online so suck up all the bandwidth you can afford.
 | 
					 | 
				
			||||||
Note that this is a new archive, so you will need to re-checkout the archive. That
 | 
					 | 
				
			||||||
means don't <i>cvs update</i> from a previous download.</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
</p><h2>August 17, 1999</h2>
 | 
					 | 
				
			||||||
<p>A report from the SIGGRAPH '99 Linux/OpenGL
 | 
					 | 
				
			||||||
BOF meeting is now available.</p>
 | 
					 | 
				
			||||||
<p>-Brian</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
</p><h2>August 14, 1999</h2>
 | 
					 | 
				
			||||||
<p>www.mesa3d.org is having technical problems due to hardware failures at VA Linux
 | 
					 | 
				
			||||||
systems. The Mac pages, ftp, and CVS services aren't fully restored yet. Please be
 | 
					 | 
				
			||||||
patient.</p>
 | 
					 | 
				
			||||||
<p>-Brian</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
</p><h2>June 7, 1999</h2>
 | 
					 | 
				
			||||||
<p>RPMS of the nVidia RIVA server can be found at <a href="ftp://ftp.mesa3d.org/mesa/misc/nVidia/">ftp://ftp.mesa3d.org/mesa/misc/nVidia/</a>.</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
</p><h2>June 2, 1999</h2>
 | 
					 | 
				
			||||||
<p><a href="http://www.nvidia.com/">nVidia</a> has released some Linux binaries for
 | 
					 | 
				
			||||||
xfree86 3.3.3.1, along with the <b>full source</b>, which includes GLX acceleration
 | 
					 | 
				
			||||||
based on Mesa 3.0. They can be downloaded from <a href="http://www.nvidia.com/Products.nsf/htmlmedia/software_drivers.html">http://www.nvidia.com/Products.nsf/htmlmedia/software_drivers.html</a>.</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
</p><h2>May 24, 1999</h2>
 | 
					 | 
				
			||||||
<p>Beta 2 of Mesa 3.1 has been make available at <a href="ftp://ftp.mesa3d.org/mesa/beta/">ftp://ftp.mesa3d.org/mesa/beta/</a>.
 | 
					 | 
				
			||||||
If you are into the quake scene, you may want to try this out, as it contains some
 | 
					 | 
				
			||||||
optimizations specifically in the Q3A rendering path.
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
</p><h2>May 13, 1999</h2>
 | 
					 | 
				
			||||||
<p>For those interested in the integration of Mesa into XFree86 4.0, Precision Insight
 | 
					 | 
				
			||||||
has posted their lowlevel design documents at http://www.precisioninsight.com.</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
</p><h2>May 13, 1999</h2>
 | 
					 | 
				
			||||||
<pre>May 1999 - John Carmack of id Software, Inc. has made a donation of
 | 
					 | 
				
			||||||
US$10,000 to the Mesa project to support its continuing development.
 | 
					 | 
				
			||||||
Mesa is a free implementation of the OpenGL 3D graphics library and id's
 | 
					 | 
				
			||||||
newest game, Quake 3 Arena, will use Mesa as the 3D renderer on Linux.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The donation will go to Keith Whitwell, who has been optimizing Mesa to
 | 
					 | 
				
			||||||
improve performance on 3d hardware.  Thanks to Keith's work, many
 | 
					 | 
				
			||||||
applications using Mesa 3.1 will see a dramatic performance increase
 | 
					 | 
				
			||||||
over Mesa 3.0.  The donation will allow Keith to continue working on
 | 
					 | 
				
			||||||
Mesa full time for some time to come.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
For more information about Mesa see www.mesa3d.org.  For more
 | 
					 | 
				
			||||||
information about id Software, Inc. see www.idsoftware.com.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
--------------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
This donation from John/id is very generous.  Keith and I are very
 | 
					 | 
				
			||||||
grateful.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
</p><h2>May 1, 1999</h2>
 | 
					 | 
				
			||||||
<p>John Carmack made an interesting .plan update yesterday:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</p><ul>
 | 
					 | 
				
			||||||
	<i>"I put together a document on optimizing OpenGL drivers for Q3 that
 | 
					 | 
				
			||||||
	should be helpful to the various Linux 3D teams. <br>
 | 
					 | 
				
			||||||
	</i>http://www.quake3arena.com/news/glopt.html</i>"
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
</p><h2>April 7, 1999</h2>
 | 
					 | 
				
			||||||
<p>Updated the Mesa contributors section and added links to RPM Mesa packages.</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
</p><h2>March 18, 1999</h2>
 | 
					 | 
				
			||||||
<p>The new webpages are now online. Enjoy, and let me know if you find any errors.
 | 
					 | 
				
			||||||
For an eye-candy free version you can use <a href="http://www.mesa3d.org/txt/">http://www.mesa3d.org/txt/</a>.</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
</p><h2>February 16, 1999</h2>
 | 
					 | 
				
			||||||
<p><a href="http://www.sgi.com/">SGI</a> releases its <a href="http://www.sgi.com/software/opensource/glx/">GLX
 | 
					 | 
				
			||||||
source code</a>.</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
</p><h2>January 22, 1999</h2>
 | 
					 | 
				
			||||||
<p>www.mesa3d.org established</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<hr>
 | 
					 | 
				
			||||||
$Id: news.html,v 3.7 2003/09/05 13:39:39 brianp Exp $
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
@@ -1,78 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Off-screen Rendering</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Off-screen Rendering</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Mesa 1.2.4 introduced off-screen rendering, a facility for generating
 | 
					 | 
				
			||||||
3-D imagery without having to open a window on your display.  Mesa's
 | 
					 | 
				
			||||||
simple off-screen rendering interface is completely operating system
 | 
					 | 
				
			||||||
and window system independent so programs which use off-screen
 | 
					 | 
				
			||||||
rendering should be very portable.  This feature effectively
 | 
					 | 
				
			||||||
enables you to use Mesa as an off-line, batch-oriented renderer.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The "OSMesa" API provides 3 functions for making off-screen
 | 
					 | 
				
			||||||
renderings: OSMesaCreateContext(), OSMesaMakeCurrent(), and
 | 
					 | 
				
			||||||
OSMesaDestroyContext().  See the Mesa/include/GL/osmesa.h header for
 | 
					 | 
				
			||||||
more information.  See the demos/osdemo.c file for an example program.
 | 
					 | 
				
			||||||
There is no facility for writing images to files.  That's up to you.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
If you want to generate large images (larger than 1280x1024) you'll
 | 
					 | 
				
			||||||
have to edit the src/config.h file to change MAX_WIDTH and MAX_HEIGHT
 | 
					 | 
				
			||||||
then recompile Mesa.  Image size should only be limited by available
 | 
					 | 
				
			||||||
memory.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H2>Deep color channels</H2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
   For some applications 8-bit color channels don't have sufficient
 | 
					 | 
				
			||||||
   accuracy (film and IBR, for example).  If you're in this situation
 | 
					 | 
				
			||||||
   you'll be happy to know that Mesa supports 16-bit and 32-bit color
 | 
					 | 
				
			||||||
   channels through the OSMesa interface.  When using 16-bit channels,
 | 
					 | 
				
			||||||
   channels are GLushorts and RGBA pixels occupy 8 bytes.  When using 32-bit
 | 
					 | 
				
			||||||
   channels, channels are GLfloats and RGBA pixels occupy 16 bytes.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
   To build Mesa/OSMesa with 16-bit color channels:
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
      cd Mesa-5.x/src
 | 
					 | 
				
			||||||
      make -f Makefile.X11 clean
 | 
					 | 
				
			||||||
      make -f Makefile.OSMesa16 linux-osmesa16
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   For 32-bit channels:
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
      cd Mesa-5.x/src
 | 
					 | 
				
			||||||
      make -f Makefile.X11 clean
 | 
					 | 
				
			||||||
      make -f Makefile.OSMesa16 linux-osmesa32
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
You'll wind up with a library named libOSMesa16.so or libOSMesa32.so.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
If you're not using Linux, you can easily edit Make-config and add
 | 
					 | 
				
			||||||
an appropriate configuration.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The Mesa/tests/osdemo16.c file (available via CVS) demonstrates how
 | 
					 | 
				
			||||||
to use this feature.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
BE WARNED: 16 and 32-bit channel support has not been exhaustively
 | 
					 | 
				
			||||||
tested and there may be some bugs.  However, a number of people have
 | 
					 | 
				
			||||||
been using this feature successfully so it can't be too broken.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</BODY>
 | 
					 | 
				
			||||||
</HTML>
 | 
					 | 
				
			||||||
@@ -1,51 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>PBuffer Rendering</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>PBuffer Rendering</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Basically, FBconfigs and PBuffers allow you to do off-screen rendering
 | 
					 | 
				
			||||||
with OpenGL.  The OSMesa interface does basically the same thing, but
 | 
					 | 
				
			||||||
fbconfigs and pbuffers are supported by more vendors.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
PBuffers are getting more use nowadays, though they've actually been
 | 
					 | 
				
			||||||
around for a long time on IRIX systems and other workstations.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The
 | 
					 | 
				
			||||||
<a href="http://oss.sgi.com/projects/ogl-sample/registry/SGIX/fbconfig.txt"
 | 
					 | 
				
			||||||
target="_parent">GL_SGIX_fbconfig</a>
 | 
					 | 
				
			||||||
and
 | 
					 | 
				
			||||||
<a href="http://oss.sgi.com/projects/ogl-sample/registry/SGIX/pbuffer.txt"
 | 
					 | 
				
			||||||
target="_parent">
 | 
					 | 
				
			||||||
GL_SGIX_pbuffer</a> extensions describe the functionality.
 | 
					 | 
				
			||||||
More recently, these extensions have been promoted to ARB extensions (on
 | 
					 | 
				
			||||||
Windows at least).
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The Mesa/progs/xdemos/ directory has some useful code for working
 | 
					 | 
				
			||||||
with pbuffers:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li><b>pbinfo.c</b> - like glxinfo, it prints a list of available
 | 
					 | 
				
			||||||
    fbconfigs and whether each supports pbuffers.
 | 
					 | 
				
			||||||
<li><b>pbutil.c</b> - a few utility functions for dealing with
 | 
					 | 
				
			||||||
    fbconfigs and pbuffers.
 | 
					 | 
				
			||||||
<li><b>pbdemo.c</b> - a demonstration of off-screen rendering with pbuffers.
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Mesa 4.1 and later support GL_SGIX_fbconfig and GL_SGIX_pbuffer (software
 | 
					 | 
				
			||||||
rendering only).
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</BODY>
 | 
					 | 
				
			||||||
</HTML>
 | 
					 | 
				
			||||||
@@ -1,66 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Performance Tips</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Performance Tips</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Performance tips for software rendering:
 | 
					 | 
				
			||||||
</P>
 | 
					 | 
				
			||||||
<ol>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li> Turn off smooth shading when you don't need it (glShadeModel)
 | 
					 | 
				
			||||||
<li> Turn off depth buffering when you don't need it.
 | 
					 | 
				
			||||||
<li> Turn off dithering when not needed.
 | 
					 | 
				
			||||||
<li> Use double buffering as it's often faster than single buffering
 | 
					 | 
				
			||||||
<li> Compile in the X Shared Memory extension option if it's supported
 | 
					 | 
				
			||||||
      on your system by adding -DSHM to CFLAGS and -lXext to XLIBS for
 | 
					 | 
				
			||||||
      your system in the Make-config file.
 | 
					 | 
				
			||||||
<li> Recompile Mesa with more optimization if possible.
 | 
					 | 
				
			||||||
<li> Try to maximize the amount of drawing done between glBegin/glEnd pairs.
 | 
					 | 
				
			||||||
<li> Use the MESA_BACK_BUFFER variable to find best performance in double
 | 
					 | 
				
			||||||
      buffered mode.  (X users only)
 | 
					 | 
				
			||||||
<li> Optimized polygon rasterizers are employed when:
 | 
					 | 
				
			||||||
         rendering into back buffer which is an XImage
 | 
					 | 
				
			||||||
         RGB mode, not grayscale, not monochrome
 | 
					 | 
				
			||||||
         depth buffering is GL_LESS, or disabled
 | 
					 | 
				
			||||||
         flat or smooth shading
 | 
					 | 
				
			||||||
         dithered or non-dithered
 | 
					 | 
				
			||||||
         no other rasterization operations enabled (blending, stencil, etc)
 | 
					 | 
				
			||||||
<li> Optimized line drawing is employed when:
 | 
					 | 
				
			||||||
         rendering into back buffer which is an XImage
 | 
					 | 
				
			||||||
         RGB mode, not grayscale, not monochrome
 | 
					 | 
				
			||||||
         depth buffering is GL_LESS or disabled
 | 
					 | 
				
			||||||
         flat shading
 | 
					 | 
				
			||||||
         dithered or non-dithered
 | 
					 | 
				
			||||||
         no other rasterization operations enabled (blending, stencil, etc)
 | 
					 | 
				
			||||||
<li> Textured polygons are fastest when:
 | 
					 | 
				
			||||||
         using a 3-component (RGB), 2-D texture
 | 
					 | 
				
			||||||
         minification and magnification filters are GL_NEAREST
 | 
					 | 
				
			||||||
         texture coordinate wrap modes for S and T are GL_REPEAT
 | 
					 | 
				
			||||||
         GL_DECAL environment mode
 | 
					 | 
				
			||||||
         glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST )
 | 
					 | 
				
			||||||
         depth buffering is GL_LESS or disabled
 | 
					 | 
				
			||||||
<li> Lighting is fastest when:
 | 
					 | 
				
			||||||
         Two-sided lighting is disabled
 | 
					 | 
				
			||||||
         GL_LIGHT_MODEL_LOCAL_VIEWER is false
 | 
					 | 
				
			||||||
         GL_COLOR_MATERIAL is disabled
 | 
					 | 
				
			||||||
         No spot lights are used (all GL_SPOT_CUTOFFs are 180.0)
 | 
					 | 
				
			||||||
         No local lights are used (all position W's are 0.0)
 | 
					 | 
				
			||||||
         All material and light coefficients are >= zero
 | 
					 | 
				
			||||||
<li> XFree86 users:  if you want to use 24-bit color try starting your
 | 
					 | 
				
			||||||
      X server in 32-bit per pixel mode for better performance.  That is,
 | 
					 | 
				
			||||||
      start your X server with
 | 
					 | 
				
			||||||
         startx -- -bpp 32
 | 
					 | 
				
			||||||
      instead of
 | 
					 | 
				
			||||||
         startx -- -bpp 24
 | 
					 | 
				
			||||||
<li> Try disabling dithering with the MESA_NO_DITHER environment variable.
 | 
					 | 
				
			||||||
      If this env var is defined Mesa will disable dithering and the
 | 
					 | 
				
			||||||
      command glEnable(GL_DITHER) will be ignored.
 | 
					 | 
				
			||||||
</ol>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</BODY>
 | 
					 | 
				
			||||||
</HTML>
 | 
					 | 
				
			||||||
@@ -1,34 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Mesa Release Notes</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Release Notes</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The release notes summarize what's new or changed in each Mesa release.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<UL>
 | 
					 | 
				
			||||||
<LI><A HREF="RELNOTES-5.0.2">RELNOTES-5.0.2</A>
 | 
					 | 
				
			||||||
<LI><A HREF="RELNOTES-5.0.1">RELNOTES-5.0.1</A>
 | 
					 | 
				
			||||||
<LI><A HREF="RELNOTES-5.0">RELNOTES-5.0</A>
 | 
					 | 
				
			||||||
<LI><A HREF="RELNOTES-4.1">RELNOTES-4.1</A>
 | 
					 | 
				
			||||||
<LI><A HREF="RELNOTES-4.0.3">RELNOTES-4.0.3</A>
 | 
					 | 
				
			||||||
<LI><A HREF="RELNOTES-4.0.2">RELNOTES-4.0.2</A>
 | 
					 | 
				
			||||||
<LI><A HREF="RELNOTES-4.0.1">RELNOTES-4.0.1</A>
 | 
					 | 
				
			||||||
<LI><A HREF="RELNOTES-4.0">RELNOTES-4.0</A>
 | 
					 | 
				
			||||||
<LI><A HREF="RELNOTES-3.5">RELNOTES-3.5</A>
 | 
					 | 
				
			||||||
<LI><A HREF="RELNOTES-3.4.2">RELNOTES-3.4.2</A>
 | 
					 | 
				
			||||||
<LI><A HREF="RELNOTES-3.4.1">RELNOTES-3.4.1</A>
 | 
					 | 
				
			||||||
<LI><A HREF="RELNOTES-3.4">RELNOTES-3.4</A>
 | 
					 | 
				
			||||||
<LI><A HREF="RELNOTES-3.3">RELNOTES-3.3</A>
 | 
					 | 
				
			||||||
<LI><A HREF="RELNOTES-3.2.1">RELNOTES-3.2.1</A>
 | 
					 | 
				
			||||||
<LI><A HREF="RELNOTES-3.2">RELNOTES-3.2</A>
 | 
					 | 
				
			||||||
<LI><A HREF="RELNOTES-3.1">RELNOTES-3.1</A>
 | 
					 | 
				
			||||||
</UL>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</BODY>
 | 
					 | 
				
			||||||
</HTML>
 | 
					 | 
				
			||||||
@@ -1,64 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Science and Technical</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Science and Technical</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
	<li><a href="http://www.softintegration.com/products/toolkit/opengl/" target="_parent">Ch</a> - OpenGL bindings for the Ch C/C++ interpreter
 | 
					 | 
				
			||||||
	</li><li><a href="http://mesa3d.sourceforge.net/notfound.html">CLEO3D</a> - event displayer for the CLEOIII detector
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.bioz.unibas.ch/%7Exray/dino/" target="_parent">DINO</a> - Visualizing
 | 
					 | 
				
			||||||
	Structural Biology
 | 
					 | 
				
			||||||
	</li><li><a href="http://www-xdiv.lanl.gov/XCM/gmv/GMVHome.html" target="_parent">General
 | 
					 | 
				
			||||||
	Mesh Viewer (GMV)</a> - scientific vis.
 | 
					 | 
				
			||||||
	</li><li><a href="http://gid.cimne.upc.es/" target="_parent">GiD</a> - finite element
 | 
					 | 
				
			||||||
	analysis
 | 
					 | 
				
			||||||
	</li><li><a href="http://sig.co.za/download.htm" target="_parent">glpoisson</a> - A finite
 | 
					 | 
				
			||||||
	element analysis program that simulates wave in an arbitrary region.
 | 
					 | 
				
			||||||
	</li><li><a href="http://glwaves.sourceforge.net/" target="_parent">GLWaves</a> -
 | 
					 | 
				
			||||||
	Electromagnetic wave visualization
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.geuz.org/gmsh/" target="_parent">Gmsh</a> -
 | 
					 | 
				
			||||||
	finite element mesh generator / viewer
 | 
					 | 
				
			||||||
	</li><li><a href="http://laaksonen.csc.fi/gopenmol/gopenmol.htmls" target="_parent">gOpenMol</a>
 | 
					 | 
				
			||||||
	- computational chemistry
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.mgix.com/gps3d/" target="_parent">GPS 3D</a> - GPS-based map visualization
 | 
					 | 
				
			||||||
	</li><li><a href="http://hirame.hiram.edu/%7Eworleyam/" target="_parent">Hitchhiker</a>
 | 
					 | 
				
			||||||
	- virtual solar system
 | 
					 | 
				
			||||||
	</li><li><a href="http://www-xdiv.lanl.gov/XCM/Hydra/" target="_parent">Hydra</a> - physics
 | 
					 | 
				
			||||||
	and engineering pkg
 | 
					 | 
				
			||||||
	</li><li><a href="http://fox.mit.edu/skunk/soft/lightspeed/" target="_parent">Light Speed</a>
 | 
					 | 
				
			||||||
	- a real-time, interactive relativistic simulator
 | 
					 | 
				
			||||||
	</li><li><a href="http://linkwinds.jpl.nasa.gov/" target="_parent">LinkWinds</a> - scientific
 | 
					 | 
				
			||||||
	vis
 | 
					 | 
				
			||||||
	</li><li><a href="http://mesa3d.sourceforge.net/notfound.html" target="_parent">MathGL3d</a> - Mathematica viewer
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.mathworks.com/products/matlab" target="_parent">Mathworks</a>
 | 
					 | 
				
			||||||
	- mathematics and visualization
 | 
					 | 
				
			||||||
	  </li><li><a href="http://www-rocq.inria.fr/gamma/medit/medit.html" target="_parent">Medit</a> - 3D surface mesh viewer
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.mol.biol.ethz.ch/wuthrich/software/molmol/" target="_parent">MOLMOL</a>
 | 
					 | 
				
			||||||
	- molecular modeling and analysis
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.avatar.se/molscript/" target="_parent">Molscript</a> - molecular
 | 
					 | 
				
			||||||
	modeling
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.opendx.org/" target="_parent">OpenDX</a> - Data visualization
 | 
					 | 
				
			||||||
	system
 | 
					 | 
				
			||||||
	</li><li><a href="http://mesa3d.sourceforge.net/notfound.html">PHLEX</a> - Finite element vis
 | 
					 | 
				
			||||||
	</li><li><a href="http://root.cern.ch/" target="_parent">ROOT</a> - Object Oriented Data
 | 
					 | 
				
			||||||
	Analysis Framework
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.slffea.com/" target="_parent">SLFFEA</a> - GNU finite element
 | 
					 | 
				
			||||||
	package
 | 
					 | 
				
			||||||
	</li><li><a href="http://quorum.tamu.edu/jon/spock" target="_parent">Spock</a> - molecular
 | 
					 | 
				
			||||||
	modeling
 | 
					 | 
				
			||||||
	</li><li><a href="http://www1.las.es/%7Eamil/ssystem" target="_parent">Ssystem</a> - solar
 | 
					 | 
				
			||||||
	system simulation
 | 
					 | 
				
			||||||
	</li><li><a href="http://mesa3d.sourceforge.net/notfound.html">SPARROW</a> - robot simulation
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.ssec.wisc.edu/%7Ebillh/vis5d.html" target="_parent">Vis5D</a>
 | 
					 | 
				
			||||||
	- atmospheric visualization
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.ks.uiuc.edu/Research/vmd/" target="_parent">VMD</a> - molecular
 | 
					 | 
				
			||||||
	modeling
 | 
					 | 
				
			||||||
	</li><li><a href="http://www.cyberbotics.com/" target="_parent">Webots</a> - 3-D mobile
 | 
					 | 
				
			||||||
	robot simulator
 | 
					 | 
				
			||||||
</li></ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body></html>
 | 
					 | 
				
			||||||
@@ -1,24 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Source Code Documentation</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Source Code Documentation</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<A HREF="http://www.doxygen.org" target="_parent">Doxygen</A>
 | 
					 | 
				
			||||||
is used to automatically
 | 
					 | 
				
			||||||
produce cross-referenced documentation from the Mesa sources.
 | 
					 | 
				
			||||||
This is not included in the normal Mesa distribution.
 | 
					 | 
				
			||||||
Download Mesa from CVS if interested.
 | 
					 | 
				
			||||||
</P>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<P>
 | 
					 | 
				
			||||||
If you're reading this page from your local copy of Mesa, and have
 | 
					 | 
				
			||||||
run the doxygen scripts, you can read the documentation
 | 
					 | 
				
			||||||
<A HREF="../doxy/core/index.html">here</A>
 | 
					 | 
				
			||||||
</P>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</BODY>
 | 
					 | 
				
			||||||
</HTML>
 | 
					 | 
				
			||||||
							
								
								
									
										3579
									
								
								docs/subset-A.html
									
									
									
									
									
								
							
							
						
						
									
										3579
									
								
								docs/subset-A.html
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -1,31 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Mesa Subset</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Mesa Subset</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
In 2002/2003 Tungsten Graphics was contracted to develop a subset Mesa/Radeon
 | 
					 | 
				
			||||||
driver for an embedded environment.  The result is a reduced-size DRI driver
 | 
					 | 
				
			||||||
for the ATI R200 chip, for use with Linux fbdev rather than XFree86.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The specification for this subset can be found
 | 
					 | 
				
			||||||
<a href="subset-A.html">here</a>.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The <a href="MiniGLX.html">MiniGLX specification</a> describes the
 | 
					 | 
				
			||||||
interface between fbdev and Mesa.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
More info to come...
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</BODY>
 | 
					 | 
				
			||||||
</HTML>
 | 
					 | 
				
			||||||
@@ -1,109 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Supported Systems and Drivers</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Supported Systems and Drivers</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Mesa was originally designed for Unix/X11 systems and is still best
 | 
					 | 
				
			||||||
supported on those systems. All you need is an ANSI C compiler and the
 | 
					 | 
				
			||||||
X development environment to use Mesa.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Others have contributed drivers
 | 
					 | 
				
			||||||
for the Amiga, Apple Macintosh, BeOS, NeXT, OS/2, MS-DOS, VMS, Windows
 | 
					 | 
				
			||||||
9x/NT, and Direct3D.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The following files describe the details for various platforms.
 | 
					 | 
				
			||||||
Be warned, some of these files (and drivers) may be very out of date.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<UL>
 | 
					 | 
				
			||||||
<LI><A HREF="README.X11">README.X11</A> - X Window System / Unix / Linux
 | 
					 | 
				
			||||||
<LI><A HREF="README.WIN32">README.WIN32</A> - Microsoft Windows
 | 
					 | 
				
			||||||
<LI><A HREF="README.VMS">README.VMS</A> - DEC VMS
 | 
					 | 
				
			||||||
<LI><A HREF="README.GGI">README.GGI</A> - GGI
 | 
					 | 
				
			||||||
<LI><A HREF="README.3DFX">README.3DFX</A> - 3Dfx/Glide driver
 | 
					 | 
				
			||||||
<LI><A HREF="README.AMIWIN">README.AMIWIN</A> - Amiga Amiwin
 | 
					 | 
				
			||||||
<LI><A HREF="README.BEOS">README.BEOS</A> - BeOS
 | 
					 | 
				
			||||||
<LI><A HREF="README.D3D">README.D3D</A> - Direct3D driver
 | 
					 | 
				
			||||||
<LI><A HREF="README.DJ">README.DJ</A> - DJGPP
 | 
					 | 
				
			||||||
<LI><A HREF="README.LYNXOS">README.LYNXOS</A> - LynxOS
 | 
					 | 
				
			||||||
<LI><A HREF="README.MINGW32">README.MINGW32</A> - Mingw32
 | 
					 | 
				
			||||||
<LI><A HREF="README.NeXT">README.NeXT</A> - NeXT
 | 
					 | 
				
			||||||
<LI><A HREF="README.OpenStep">README.OpenStep</A> - OpenStep
 | 
					 | 
				
			||||||
<LI><A HREF="README.OS2">README.OS2</A> - OS/2
 | 
					 | 
				
			||||||
<LI><A HREF="README.WINDML">README.WINDML</A> - WindML
 | 
					 | 
				
			||||||
</UL>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The standard Mesa distribution only supports software-based rendering, with
 | 
					 | 
				
			||||||
the exception of the 3Dfx Glide driver.
 | 
					 | 
				
			||||||
Information about other hardware support follows.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li>DRI-based hardware support for 3dfx, Intel, Matrox, ATI with XFree86
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
	<p>The <a href="http://dri.sourceforge.net/" target="_parent">DRI architecture</a>,
 | 
					 | 
				
			||||||
	originally developed by Precision Insight, Inc. uses Mesa and
 | 
					 | 
				
			||||||
        provides hardware acceleration for a number of popular chipsets.<br>
 | 
					 | 
				
			||||||
	<br>
 | 
					 | 
				
			||||||
	The DRI is part of XFree86 4.0 and later.
 | 
					 | 
				
			||||||
        <br><br>
 | 
					 | 
				
			||||||
        If you download and install XFree86 4.x you do not need to
 | 
					 | 
				
			||||||
        install Mesa separately.  All the important parts of Mesa
 | 
					 | 
				
			||||||
        will be installed with the rest of XFree86.
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li>3dfx Voodoo1, Voodoo2, Voodoo Rush, Voodoo Banshee, Voodoo3
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
<p>All cards based on these chipsets should work with Linux and
 | 
					 | 
				
			||||||
Windows 95 via 3dfx's Glide library.
 | 
					 | 
				
			||||||
The Mesa/Glide driver is included with the Mesa distribution.
 | 
					 | 
				
			||||||
You'll need to install the Glide header files and runtime library.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
David Bucciarelli wrote the original 3dfx driver for Mesa.<br>
 | 
					 | 
				
			||||||
Daryll Strauss ported Glide to Linux.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li>Matrox G200/G400, nVidia RIVA, ATI Rage Pro, Intel i810 on Linux
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
<p>The <a href="http://utah-glx.sourceforge.net/" target="_parent">
 | 
					 | 
				
			||||||
Utah GLX project</a>
 | 
					 | 
				
			||||||
(no longer active) developed drivers for these chipsets and others.
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li>Amiga Warp3D
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
<p>Amiga systems can support 3D hardware with the Warp3D API.
 | 
					 | 
				
			||||||
See <a href="http://www.haage-partner.com/3dworld" target="_parent">here</a>.
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li>Also see
 | 
					 | 
				
			||||||
<blockquote>
 | 
					 | 
				
			||||||
<p><a href="http://www.linux3d.org/" target="_parent">www.linux3d.org</a> for
 | 
					 | 
				
			||||||
other 3D hardware info for Linux.
 | 
					 | 
				
			||||||
</blockquote>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<b><em>Note:</em></b>
 | 
					 | 
				
			||||||
If you have NVIDIA hardware in your computer,
 | 
					 | 
				
			||||||
you should download and install NVIDIA's OpenGL library.  You may
 | 
					 | 
				
			||||||
however, want to download Mesa in order to use its GLU and GLUT
 | 
					 | 
				
			||||||
libraries, or assorted demo programs.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
							
								
								
									
										124
									
								
								docs/thanks.html
									
									
									
									
									
								
							
							
						
						
									
										124
									
								
								docs/thanks.html
									
									
									
									
									
								
							@@ -1,124 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<HEAD>
 | 
					 | 
				
			||||||
<TITLE>Acknowledgements</TITLE>
 | 
					 | 
				
			||||||
</HEAD>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Acknowledgments</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The following individuals and groups are to be acknowledged for their
 | 
					 | 
				
			||||||
contributions to Mesa over the years.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li>Early Mesa development was done while Brian was part of the
 | 
					 | 
				
			||||||
<A HREF="http://www.ssec.wisc.edu/~billh/vis.html"
 | 
					 | 
				
			||||||
target="_parent">SSEC Visualization Project</A> at the University of
 | 
					 | 
				
			||||||
Wisconsin. He'd like to thank Bill Hibbard for letting him work on
 | 
					 | 
				
			||||||
Mesa as part of that project.
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<li>John Carmack of id Software, Inc. funded Keith Whitwell in 1999 in
 | 
					 | 
				
			||||||
order to optimize Mesa's vertex transformation module. This is a very
 | 
					 | 
				
			||||||
substantial piece of work.
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<li>Precision Insight, Inc., VA Linux Systems, Inc., and most recently,
 | 
					 | 
				
			||||||
Tungsten Graphics, Inc. have supported the ongoing development of Mesa.
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<li>The <A HREF="http://sourceforge.net/projects/mesa3d"
 | 
					 | 
				
			||||||
target="_parent">Mesa</A>
 | 
					 | 
				
			||||||
project is hosted by<A HREF="http://sourceforge.net"
 | 
					 | 
				
			||||||
target="_parent"><IMG SRC="http://sourceforge.net/sflogo.php?group_id=3&type=1"
 | 
					 | 
				
			||||||
WIDTH="88" HEIGHT="31" ALIGN="BOTTOM" ALT="Sourceforge.net" BORDER="0"></A>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="http://www.altsoftware.com/"
 | 
					 | 
				
			||||||
target="_parent">alt.software</a> contributed the Direct3D driver.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>Bernd Barsuhn</b> wrote the evaluator code for (splines,
 | 
					 | 
				
			||||||
patches) in Mesa.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>Bernhard Tschirren</b> wrote the Allegro DJGPP driver.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>Bogdan Sikorski</b> wrote the GLU NURBS and polygon tessellator
 | 
					 | 
				
			||||||
in Mesa.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>Charlie Wallace</b> wrote the MS-DOS driver.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>CJ Beyer</b> was the www.mesa3d.org webmaster.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>Darren Abbott</b> provided the OS/2 driver.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>David Bucciarelli</b> wrote and maintained the 3Dfx Glide
 | 
					 | 
				
			||||||
driver. Thousands of Linux/Quake players thank David!
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>Gareth Hughes</b> wrote new GLU 1.2 Polygon Tessellation code
 | 
					 | 
				
			||||||
(now superceded by SGI SI GLU).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>Holger Waechtler</b> contributed AMD 3DNow! assembly code which
 | 
					 | 
				
			||||||
accelerates vertex transformation in Mesa 3.1. Holger also implemented
 | 
					 | 
				
			||||||
the GL_EXT_texture_env_combine extension.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>Jeroen van der Zijp</b> and <b>Thorsten Ohl</b> contributed the
 | 
					 | 
				
			||||||
Xt/Motif widget code.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>John Stone</b> provided the multi-threading support in Mesa 3.0.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>John Watson</b> assisted with web page design.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>Josh Vanderhoof</b> contributed Intel x86 assembly code which
 | 
					 | 
				
			||||||
accelerates vertex transformation in Mesa 3.x.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>Jouk Jansen</b> contributed and continues to maintain the VMS
 | 
					 | 
				
			||||||
support.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>Karl Schultz</b> has been maintaining the Windows driver.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>Keith Whitwell</b> has made extension contributions to Mesa
 | 
					 | 
				
			||||||
since 1999.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>Kendall Bennett</b> wrote the SciTech MGL driver.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>Klaus Niederkrueger</b> contributed many improvements to Mesa's
 | 
					 | 
				
			||||||
software rasterizer.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>Mark Kilgard</b> contributed antialiased line improvements and
 | 
					 | 
				
			||||||
several extensions.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>Michael Pichler</b> contributed <em>many</em> bug fixes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>Miklos Fazekas</b> wrote and maintains the Macintosh driver.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>Pascal Thibaudeau</b> wrote the NeXT driver.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>Pedro Vazquez</b> setup and maintains the Mesa Mailing list.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>Randy Frank</b> contributed <em>many</em> bug fixes.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>Stefan Zivkovic</b> wrote the Amiga driver.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>Stephane Rehel</b> provided the Cygnus Win32 support
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>Ted Jump</b> maintained the
 | 
					 | 
				
			||||||
makefiles and project files for Windows 95/98/NT compilation for some time.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>Uwe Maurer</b> wrote the LibGGI driver for Mesa-3.0.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><b>Victor Ng-Thow-Hing</b> wrote the Amiwin driver for the Amiga.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Apologies to anyone who's been omitted.
 | 
					 | 
				
			||||||
Please send corrections and additions to Brian.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</BODY>
 | 
					 | 
				
			||||||
</HTML>
 | 
					 | 
				
			||||||
@@ -1,24 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Development Utilities</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Development Utilities</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li>The Mesa distribution includes several utility routines in the
 | 
					 | 
				
			||||||
progs/util/ directory
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li>Allen Akin's <a href="http://glean.sourceforge.net/"
 | 
					 | 
				
			||||||
target="_parent">glean</a> is a framework for OpenGL testing.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="http://developer.kde.org/~sewardj/"
 | 
					 | 
				
			||||||
target="_parent">Valgrind</a> is a very useful tool for tracking down
 | 
					 | 
				
			||||||
memory-related problems in your code.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
@@ -1,42 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Utilities</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff" link="#111188">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Utilities</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li><a href="http://fox.mit.edu/skunk/soft/fsv/"
 | 
					 | 
				
			||||||
	target="_parent">fvs</a> - 3D file system visualizer
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="http://www.dgp.utoronto.ca/%7Emac/projects/glbiff.html"
 | 
					 | 
				
			||||||
	target="_parent">glbiff</a> - GL version of xbiff
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="http://glload.netpedia.net/" target="_parent">glload</a>
 | 
					 | 
				
			||||||
	- CPU load meter
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="http://www.scitechsoft.com/gldirect.html"
 | 
					 | 
				
			||||||
	target="_parent">SciTech GLDirect</a> - Driver to run OpenGL
 | 
					 | 
				
			||||||
	apps using Direct3D under Windows
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="http://threedsia.sourceforge.net/"
 | 
					 | 
				
			||||||
	target="_parent">3Dsia</a> - 3D user interface
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="http://mesa3d.sourceforge.net/notfound.html">VRML Site
 | 
					 | 
				
			||||||
Map</a> - 3D GUI
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="http://www.vros.com/" target="_parent">VR/OS</a> - VR
 | 
					 | 
				
			||||||
user interface
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="http://wauug.erols.com/%7Ebagleyd/"
 | 
					 | 
				
			||||||
target="_parent">xlockmore</a> - an X screen saver
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="http://www.jwz.org/xscreensaver"
 | 
					 | 
				
			||||||
target="_parent">xscreensaver</a> - X screen saver
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
@@ -1,22 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>Mesa Introduction</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY text="#000000" bgcolor="#55bbff">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Webmaster</font></H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
If you have problems, edits or additions for this website send them
 | 
					 | 
				
			||||||
to Brian
 | 
					 | 
				
			||||||
(<em>b</em><em>r</em><em>i</em><em>a</em><em>n</em><em>_</em><em>e</em><em>_</em><em>p</em><em>a</em><em>u</em><em>l</em><em>@</em><em>y</em><em>a</em><em>h</em><em>o</em><em>o</em><em>.</em><em>c</em><em>o</em><em>m</em>)</a>.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Mark Manning made the frame-based layout for the website.
 | 
					 | 
				
			||||||
Brian's modified it a lot since then.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
@@ -1,15 +0,0 @@
 | 
				
			|||||||
*.tag
 | 
					 | 
				
			||||||
agpgart
 | 
					 | 
				
			||||||
array_cache
 | 
					 | 
				
			||||||
core
 | 
					 | 
				
			||||||
core_subset
 | 
					 | 
				
			||||||
math
 | 
					 | 
				
			||||||
math_subset
 | 
					 | 
				
			||||||
miniglx
 | 
					 | 
				
			||||||
radeon_subset
 | 
					 | 
				
			||||||
radeondrm
 | 
					 | 
				
			||||||
radeonfb
 | 
					 | 
				
			||||||
swrast
 | 
					 | 
				
			||||||
swrast_setup
 | 
					 | 
				
			||||||
tnl
 | 
					 | 
				
			||||||
tnl_dd
 | 
					 | 
				
			||||||
@@ -1,30 +0,0 @@
 | 
				
			|||||||
default: full
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
all: full subset
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
%.tag: %.doxy
 | 
					 | 
				
			||||||
	doxygen $<
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
FULL = \
 | 
					 | 
				
			||||||
	core.doxy \
 | 
					 | 
				
			||||||
	math.doxy \
 | 
					 | 
				
			||||||
	array_cache.doxy \
 | 
					 | 
				
			||||||
	swrast.doxy \
 | 
					 | 
				
			||||||
	swrast_setup.doxy \
 | 
					 | 
				
			||||||
	tnl.doxy \
 | 
					 | 
				
			||||||
	tnl_dd.doxy
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
full: $(FULL:.doxy=.tag)
 | 
					 | 
				
			||||||
	$(foreach FILE,$(FULL),doxygen $(FILE);)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
SUBSET = \
 | 
					 | 
				
			||||||
	core.doxy \
 | 
					 | 
				
			||||||
	math.doxy \
 | 
					 | 
				
			||||||
	miniglx.doxy
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
subset: $(SUBSET:.doxy=.tag)
 | 
					 | 
				
			||||||
	$(foreach FILE,$(SUBSET),doxygen $(FILE);)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
clean:
 | 
					 | 
				
			||||||
	rm -rf $(FULL:.doxy=) $(SUBSET:.doxy=)
 | 
					 | 
				
			||||||
	rm -rf *.tag
 | 
					 | 
				
			||||||
@@ -1,10 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
This directory is for doxygen (a source code documentation system).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
See http://www.doxygen.org/ for more info.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Either run 'make' (Unix) or 'doxy.bat' (Windows) to run doxygen
 | 
					 | 
				
			||||||
and generate souce code documentation.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Then, load either doxy/core/index.html or doxy/core_subset/index.html into
 | 
					 | 
				
			||||||
your web browser.
 | 
					 | 
				
			||||||
@@ -1,49 +0,0 @@
 | 
				
			|||||||
# Doxyfile 0.1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@INCLUDE               = common.doxy
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# General configuration options
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
PROJECT_NAME           = "Mesa array_cache"
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# configuration options related to the input files
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
INPUT                  = ../src/mesa/array_cache/
 | 
					 | 
				
			||||||
FILE_PATTERNS          = *.c \
 | 
					 | 
				
			||||||
                         *.h
 | 
					 | 
				
			||||||
RECURSIVE              = NO
 | 
					 | 
				
			||||||
EXCLUDE                = 
 | 
					 | 
				
			||||||
EXCLUDE_PATTERNS       = 
 | 
					 | 
				
			||||||
EXAMPLE_PATH           = 
 | 
					 | 
				
			||||||
EXAMPLE_PATTERNS       = 
 | 
					 | 
				
			||||||
EXAMPLE_RECURSIVE      = NO
 | 
					 | 
				
			||||||
IMAGE_PATH             = 
 | 
					 | 
				
			||||||
INPUT_FILTER           = 
 | 
					 | 
				
			||||||
FILTER_SOURCE_FILES    = NO
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# configuration options related to the HTML output
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
HTML_OUTPUT            = array_cache
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Configuration options related to the preprocessor   
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
ENABLE_PREPROCESSING   = YES
 | 
					 | 
				
			||||||
MACRO_EXPANSION        = NO
 | 
					 | 
				
			||||||
EXPAND_ONLY_PREDEF     = NO
 | 
					 | 
				
			||||||
SEARCH_INCLUDES        = YES
 | 
					 | 
				
			||||||
INCLUDE_PATH           = 
 | 
					 | 
				
			||||||
INCLUDE_FILE_PATTERNS  = 
 | 
					 | 
				
			||||||
PREDEFINED             = 
 | 
					 | 
				
			||||||
EXPAND_AS_DEFINED      = 
 | 
					 | 
				
			||||||
SKIP_FUNCTION_MACROS   = YES
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Configuration::addtions related to external references   
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
TAGFILES               = core.tag=../core \
 | 
					 | 
				
			||||||
			 tnl.tag=../tnl \
 | 
					 | 
				
			||||||
			 swrast_setup.tag=../swrast_setup \
 | 
					 | 
				
			||||||
			 swrast.tag=../swrast \
 | 
					 | 
				
			||||||
			 math.tag=../math \
 | 
					 | 
				
			||||||
			 tnl_dd.tag=../tnl_dd
 | 
					 | 
				
			||||||
GENERATE_TAGFILE       = array_cache.tag
 | 
					 | 
				
			||||||
							
								
								
									
										1101
									
								
								doxygen/common.doxy
									
									
									
									
									
								
							
							
						
						
									
										1101
									
								
								doxygen/common.doxy
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -1,48 +0,0 @@
 | 
				
			|||||||
# Doxyfile 0.1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@INCLUDE               = common.doxy
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# General configuration options
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
PROJECT_NAME           = "Mesa Core"
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# configuration options related to the input files
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
INPUT                  = ../src/mesa/main/
 | 
					 | 
				
			||||||
FILE_PATTERNS          = *.c *.h
 | 
					 | 
				
			||||||
RECURSIVE              = NO
 | 
					 | 
				
			||||||
EXCLUDE                = ../src/glapitemp.h ../src/glapioffsets.h
 | 
					 | 
				
			||||||
EXCLUDE_PATTERNS       = subset_*
 | 
					 | 
				
			||||||
EXAMPLE_PATH           = 
 | 
					 | 
				
			||||||
EXAMPLE_PATTERNS       = 
 | 
					 | 
				
			||||||
EXAMPLE_RECURSIVE      = NO
 | 
					 | 
				
			||||||
IMAGE_PATH             = 
 | 
					 | 
				
			||||||
INPUT_FILTER           = 
 | 
					 | 
				
			||||||
FILTER_SOURCE_FILES    = NO
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# configuration options related to the HTML output
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
HTML_OUTPUT            = core
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Configuration options related to the preprocessor   
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
ENABLE_PREPROCESSING   = YES
 | 
					 | 
				
			||||||
MACRO_EXPANSION        = YES
 | 
					 | 
				
			||||||
EXPAND_ONLY_PREDEF     = YES
 | 
					 | 
				
			||||||
SEARCH_INCLUDES        = YES
 | 
					 | 
				
			||||||
INCLUDE_PATH           = ../include/
 | 
					 | 
				
			||||||
INCLUDE_FILE_PATTERNS  = 
 | 
					 | 
				
			||||||
PREDEFINED             = _HAVE_FULL_GL=1
 | 
					 | 
				
			||||||
EXPAND_AS_DEFINED      = _glthread_DECLARE_STATIC_MUTEX
 | 
					 | 
				
			||||||
SKIP_FUNCTION_MACROS   = YES
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Configuration::addtions related to external references   
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
TAGFILES		= tnl_dd.tag=../tnl_dd \
 | 
					 | 
				
			||||||
			 array_cache.tag=../array_cache \
 | 
					 | 
				
			||||||
                         math.tag=../math \
 | 
					 | 
				
			||||||
                         swrast.tag=../swrast \
 | 
					 | 
				
			||||||
                         swrast_setup.tag=../swrast_setup \
 | 
					 | 
				
			||||||
                         tnl.tag=../tnl
 | 
					 | 
				
			||||||
GENERATE_TAGFILE       = core.tag
 | 
					 | 
				
			||||||
@@ -1,226 +0,0 @@
 | 
				
			|||||||
# Doxyfile 0.1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# General configuration options
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
PROJECT_NAME           = "Mesa Core"
 | 
					 | 
				
			||||||
PROJECT_NUMBER         = 
 | 
					 | 
				
			||||||
OUTPUT_DIRECTORY       = 
 | 
					 | 
				
			||||||
OUTPUT_LANGUAGE        = English
 | 
					 | 
				
			||||||
EXTRACT_ALL            = NO
 | 
					 | 
				
			||||||
EXTRACT_PRIVATE        = NO
 | 
					 | 
				
			||||||
EXTRACT_STATIC         = YES
 | 
					 | 
				
			||||||
EXTRACT_LOCAL_CLASSES  = YES
 | 
					 | 
				
			||||||
HIDE_UNDOC_MEMBERS     = NO
 | 
					 | 
				
			||||||
HIDE_UNDOC_CLASSES     = NO
 | 
					 | 
				
			||||||
BRIEF_MEMBER_DESC      = YES
 | 
					 | 
				
			||||||
REPEAT_BRIEF           = YES
 | 
					 | 
				
			||||||
ALWAYS_DETAILED_SEC    = NO
 | 
					 | 
				
			||||||
INLINE_INHERITED_MEMB  = NO
 | 
					 | 
				
			||||||
FULL_PATH_NAMES        = NO
 | 
					 | 
				
			||||||
STRIP_FROM_PATH        = 
 | 
					 | 
				
			||||||
INTERNAL_DOCS          = YES
 | 
					 | 
				
			||||||
STRIP_CODE_COMMENTS    = YES
 | 
					 | 
				
			||||||
CASE_SENSE_NAMES       = YES
 | 
					 | 
				
			||||||
SHORT_NAMES            = NO
 | 
					 | 
				
			||||||
HIDE_SCOPE_NAMES       = NO
 | 
					 | 
				
			||||||
VERBATIM_HEADERS       = YES
 | 
					 | 
				
			||||||
SHOW_INCLUDE_FILES     = YES
 | 
					 | 
				
			||||||
JAVADOC_AUTOBRIEF      = NO
 | 
					 | 
				
			||||||
INHERIT_DOCS           = YES
 | 
					 | 
				
			||||||
INLINE_INFO            = YES
 | 
					 | 
				
			||||||
SORT_MEMBER_DOCS       = NO
 | 
					 | 
				
			||||||
DISTRIBUTE_GROUP_DOC   = NO
 | 
					 | 
				
			||||||
TAB_SIZE               = 8
 | 
					 | 
				
			||||||
GENERATE_TODOLIST      = YES
 | 
					 | 
				
			||||||
GENERATE_TESTLIST      = YES
 | 
					 | 
				
			||||||
GENERATE_BUGLIST       = YES
 | 
					 | 
				
			||||||
ALIASES                = 
 | 
					 | 
				
			||||||
ENABLED_SECTIONS       = subset
 | 
					 | 
				
			||||||
MAX_INITIALIZER_LINES  = 30
 | 
					 | 
				
			||||||
OPTIMIZE_OUTPUT_FOR_C  = NO
 | 
					 | 
				
			||||||
SHOW_USED_FILES        = YES
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# configuration options related to warning and progress messages
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
QUIET                  = YES
 | 
					 | 
				
			||||||
WARNINGS               = YES
 | 
					 | 
				
			||||||
WARN_IF_UNDOCUMENTED   = NO
 | 
					 | 
				
			||||||
WARN_FORMAT            = 
 | 
					 | 
				
			||||||
WARN_LOGFILE           = 
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# configuration options related to the input files
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
INPUT                  = ../src/mesa/main/
 | 
					 | 
				
			||||||
FILE_PATTERNS          = \
 | 
					 | 
				
			||||||
			accum.h \
 | 
					 | 
				
			||||||
			attrib.h \
 | 
					 | 
				
			||||||
			blend.[ch] \
 | 
					 | 
				
			||||||
			buffers.[ch] \
 | 
					 | 
				
			||||||
			dd.h \
 | 
					 | 
				
			||||||
			debug.h \
 | 
					 | 
				
			||||||
			depth.h \
 | 
					 | 
				
			||||||
			dlist.h \
 | 
					 | 
				
			||||||
			context.[ch] \
 | 
					 | 
				
			||||||
			config.h \
 | 
					 | 
				
			||||||
			colormac.h \
 | 
					 | 
				
			||||||
			colortab.h \
 | 
					 | 
				
			||||||
			enable.h \
 | 
					 | 
				
			||||||
			enums.h \
 | 
					 | 
				
			||||||
			eval.h \
 | 
					 | 
				
			||||||
			extensions.h \
 | 
					 | 
				
			||||||
			feedback.[ch] \
 | 
					 | 
				
			||||||
			fog.h \
 | 
					 | 
				
			||||||
			get.h \
 | 
					 | 
				
			||||||
			glheader.h \
 | 
					 | 
				
			||||||
			glthread.h \
 | 
					 | 
				
			||||||
			hash.[ch] \
 | 
					 | 
				
			||||||
			hint.h \
 | 
					 | 
				
			||||||
			histogram.h \
 | 
					 | 
				
			||||||
			image.[ch] \
 | 
					 | 
				
			||||||
			imports.[ch] \
 | 
					 | 
				
			||||||
			lines.[ch] \
 | 
					 | 
				
			||||||
			light.h \
 | 
					 | 
				
			||||||
			matrix.[ch] \
 | 
					 | 
				
			||||||
			macros.h \
 | 
					 | 
				
			||||||
			mmath.h \
 | 
					 | 
				
			||||||
			mtypes.h \
 | 
					 | 
				
			||||||
			pixel.h \
 | 
					 | 
				
			||||||
			points.[ch] \
 | 
					 | 
				
			||||||
			polygon.[ch] \
 | 
					 | 
				
			||||||
			rastpos.[ch] \
 | 
					 | 
				
			||||||
			simple_list.h \
 | 
					 | 
				
			||||||
			state.[ch] \
 | 
					 | 
				
			||||||
			stencil.[ch] \
 | 
					 | 
				
			||||||
			subset_*.c \
 | 
					 | 
				
			||||||
			texformat.h \
 | 
					 | 
				
			||||||
			teximage.h \
 | 
					 | 
				
			||||||
			texstate.h \
 | 
					 | 
				
			||||||
			texstore.h \
 | 
					 | 
				
			||||||
			texobj.[ch] \
 | 
					 | 
				
			||||||
			texutil_tmp.h \
 | 
					 | 
				
			||||||
			varray.h
 | 
					 | 
				
			||||||
RECURSIVE              = NO
 | 
					 | 
				
			||||||
EXCLUDE                = 
 | 
					 | 
				
			||||||
EXCLUDE_PATTERNS       = 
 | 
					 | 
				
			||||||
EXAMPLE_PATH           = 
 | 
					 | 
				
			||||||
EXAMPLE_PATTERNS       = 
 | 
					 | 
				
			||||||
EXAMPLE_RECURSIVE      = NO
 | 
					 | 
				
			||||||
IMAGE_PATH             = 
 | 
					 | 
				
			||||||
INPUT_FILTER           = 
 | 
					 | 
				
			||||||
FILTER_SOURCE_FILES    = NO
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# configuration options related to source browsing
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
SOURCE_BROWSER         = YES
 | 
					 | 
				
			||||||
INLINE_SOURCES         = NO
 | 
					 | 
				
			||||||
REFERENCED_BY_RELATION = YES
 | 
					 | 
				
			||||||
REFERENCES_RELATION    = YES
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# configuration options related to the alphabetical class index
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
ALPHABETICAL_INDEX     = NO
 | 
					 | 
				
			||||||
COLS_IN_ALPHA_INDEX    = 5
 | 
					 | 
				
			||||||
IGNORE_PREFIX          = 
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# configuration options related to the HTML output
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
GENERATE_HTML          = YES
 | 
					 | 
				
			||||||
HTML_OUTPUT            = core_subset
 | 
					 | 
				
			||||||
HTML_HEADER            = header_subset.html
 | 
					 | 
				
			||||||
HTML_FOOTER            = 
 | 
					 | 
				
			||||||
HTML_STYLESHEET        = 
 | 
					 | 
				
			||||||
HTML_ALIGN_MEMBERS     = YES
 | 
					 | 
				
			||||||
GENERATE_HTMLHELP      = NO
 | 
					 | 
				
			||||||
GENERATE_CHI           = NO
 | 
					 | 
				
			||||||
BINARY_TOC             = NO
 | 
					 | 
				
			||||||
TOC_EXPAND             = NO
 | 
					 | 
				
			||||||
DISABLE_INDEX          = NO
 | 
					 | 
				
			||||||
ENUM_VALUES_PER_LINE   = 4
 | 
					 | 
				
			||||||
GENERATE_TREEVIEW      = NO
 | 
					 | 
				
			||||||
TREEVIEW_WIDTH         = 250
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# configuration options related to the LaTeX output
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
GENERATE_LATEX         = NO
 | 
					 | 
				
			||||||
LATEX_OUTPUT           = 
 | 
					 | 
				
			||||||
COMPACT_LATEX          = NO
 | 
					 | 
				
			||||||
PAPER_TYPE             = a4wide
 | 
					 | 
				
			||||||
EXTRA_PACKAGES         = 
 | 
					 | 
				
			||||||
LATEX_HEADER           = 
 | 
					 | 
				
			||||||
PDF_HYPERLINKS         = NO
 | 
					 | 
				
			||||||
USE_PDFLATEX           = NO
 | 
					 | 
				
			||||||
LATEX_BATCHMODE        = NO
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# configuration options related to the RTF output
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
GENERATE_RTF           = NO
 | 
					 | 
				
			||||||
RTF_OUTPUT             = 
 | 
					 | 
				
			||||||
COMPACT_RTF            = NO
 | 
					 | 
				
			||||||
RTF_HYPERLINKS         = NO
 | 
					 | 
				
			||||||
RTF_STYLESHEET_FILE    = 
 | 
					 | 
				
			||||||
RTF_EXTENSIONS_FILE    = 
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# configuration options related to the man page output
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
GENERATE_MAN           = NO
 | 
					 | 
				
			||||||
MAN_OUTPUT             = 
 | 
					 | 
				
			||||||
MAN_EXTENSION          = 
 | 
					 | 
				
			||||||
MAN_LINKS              = NO
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# configuration options related to the XML output
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
GENERATE_XML           = NO
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# configuration options for the AutoGen Definitions output
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
GENERATE_AUTOGEN_DEF   = NO
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Configuration options related to the preprocessor   
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
ENABLE_PREPROCESSING   = YES
 | 
					 | 
				
			||||||
MACRO_EXPANSION        = NO
 | 
					 | 
				
			||||||
EXPAND_ONLY_PREDEF     = NO
 | 
					 | 
				
			||||||
SEARCH_INCLUDES        = YES
 | 
					 | 
				
			||||||
INCLUDE_PATH           = ../include/
 | 
					 | 
				
			||||||
INCLUDE_FILE_PATTERNS  = 
 | 
					 | 
				
			||||||
PREDEFINED             = 
 | 
					 | 
				
			||||||
EXPAND_AS_DEFINED      = 
 | 
					 | 
				
			||||||
SKIP_FUNCTION_MACROS   = YES
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Configuration::addtions related to external references   
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
TAGFILES		= \
 | 
					 | 
				
			||||||
			 math_subset.tag=../math_subset \
 | 
					 | 
				
			||||||
			 miniglx.tag=../miniglx
 | 
					 | 
				
			||||||
GENERATE_TAGFILE       = core_subset.tag
 | 
					 | 
				
			||||||
ALLEXTERNALS           = NO
 | 
					 | 
				
			||||||
PERL_PATH              = 
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Configuration options related to the dot tool   
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
CLASS_DIAGRAMS         = NO
 | 
					 | 
				
			||||||
HAVE_DOT               = NO
 | 
					 | 
				
			||||||
CLASS_GRAPH            = YES
 | 
					 | 
				
			||||||
COLLABORATION_GRAPH    = YES
 | 
					 | 
				
			||||||
TEMPLATE_RELATIONS     = YES
 | 
					 | 
				
			||||||
HIDE_UNDOC_RELATIONS   = YES
 | 
					 | 
				
			||||||
INCLUDE_GRAPH          = YES
 | 
					 | 
				
			||||||
INCLUDED_BY_GRAPH      = YES
 | 
					 | 
				
			||||||
GRAPHICAL_HIERARCHY    = YES
 | 
					 | 
				
			||||||
DOT_PATH               = 
 | 
					 | 
				
			||||||
DOTFILE_DIRS           = 
 | 
					 | 
				
			||||||
MAX_DOT_GRAPH_WIDTH    = 1024
 | 
					 | 
				
			||||||
MAX_DOT_GRAPH_HEIGHT   = 1024
 | 
					 | 
				
			||||||
GENERATE_LEGEND        = YES
 | 
					 | 
				
			||||||
DOT_CLEANUP            = YES
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Configuration::addtions related to the search engine   
 | 
					 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					 | 
				
			||||||
SEARCHENGINE           = NO
 | 
					 | 
				
			||||||
CGI_NAME               = 
 | 
					 | 
				
			||||||
CGI_URL                = 
 | 
					 | 
				
			||||||
DOC_URL                = 
 | 
					 | 
				
			||||||
DOC_ABSPATH            = 
 | 
					 | 
				
			||||||
BIN_ABSPATH            = 
 | 
					 | 
				
			||||||
EXT_DOC_PATHS          = 
 | 
					 | 
				
			||||||
@@ -1,14 +0,0 @@
 | 
				
			|||||||
doxygen tnl_dd.doxy
 | 
					 | 
				
			||||||
doxygen array_cache.doxy
 | 
					 | 
				
			||||||
doxygen math.doxy
 | 
					 | 
				
			||||||
doxygen swrast.doxy
 | 
					 | 
				
			||||||
doxygen swrast_setup.doxy
 | 
					 | 
				
			||||||
doxygen tnl.doxy
 | 
					 | 
				
			||||||
doxygen core.doxy
 | 
					 | 
				
			||||||
echo Building again, to resolve tags
 | 
					 | 
				
			||||||
doxygen tnl_dd.doxy
 | 
					 | 
				
			||||||
doxygen array_cache.doxy
 | 
					 | 
				
			||||||
doxygen math.doxy
 | 
					 | 
				
			||||||
doxygen swrast.doxy
 | 
					 | 
				
			||||||
doxygen swrast_setup.doxy
 | 
					 | 
				
			||||||
doxygen tnl.doxy
 | 
					 | 
				
			||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user