Compare commits
	
		
			199 Commits
		
	
	
		
			vtx-0-2-21
			...
			mesa_3_4_2
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 217ff8f196 | ||
|  | 06e6793b60 | ||
|  | e01975967a | ||
|  | 82313b4df0 | ||
|  | 1e3b2d9b7e | ||
|  | b96b92f7ec | ||
|  | 8184f76f02 | ||
|  | 1edc9d7248 | ||
|  | c80ee2065a | ||
|  | e8bf438419 | ||
|  | f4f8dc57b6 | ||
|  | 446b09ef66 | ||
|  | 9edd7c1538 | ||
|  | e1b0819815 | ||
|  | 72af1b921e | ||
|  | f68bfe0b5c | ||
|  | b585fdcefc | ||
|  | f752017f5b | ||
|  | 3fef3e49bc | ||
|  | 259de69210 | ||
|  | 3063e1da09 | ||
|  | 62abec65c9 | ||
|  | bb4f463d1c | ||
|  | 0f6e64513b | ||
|  | 32fda642b2 | ||
|  | 72d4c40401 | ||
|  | 032908842a | ||
|  | 89e8b95d8b | ||
|  | 736400f6b9 | ||
|  | 9a7cc899e1 | ||
|  | 9d2eba0c20 | ||
|  | c32ad4d4be | ||
|  | deb0a3d786 | ||
|  | 45902de9c6 | ||
|  | b11ce6f485 | ||
|  | df89122630 | ||
|  | e4410ab230 | ||
|  | ab0bfd3f84 | ||
|  | ccab03eaaa | ||
|  | 0e60b90ed5 | ||
|  | a387769bb9 | ||
|  | bd61d1b46d | ||
|  | 7c06923b95 | ||
|  | ce26824c68 | ||
|  | 026c1b2e9c | ||
|  | da2cccaba2 | ||
|  | 7987dbf70d | ||
|  | e430f93ea0 | ||
|  | bb70b0eaf8 | ||
|  | b0f1460f13 | ||
|  | 08a9355932 | ||
|  | e9bd590781 | ||
|  | 456480981a | ||
|  | a241b22aaa | ||
|  | e32b1543e8 | ||
|  | 5a7d5d0808 | ||
|  | e3aef4ed72 | ||
|  | 47759b1d82 | ||
|  | 0c769dba55 | ||
|  | 9a1ca37e5b | ||
|  | 0eedea5083 | ||
|  | c3ccae5f49 | ||
|  | 18074cf055 | ||
|  | 1929fbde14 | ||
|  | 7a47ecdf23 | ||
|  | 0f7e5e8a47 | ||
|  | 44779d21a3 | ||
|  | ae5cc3e94c | ||
|  | b15870fe69 | ||
|  | 5c08f57d87 | ||
|  | d6540dbaf2 | ||
|  | 9e33f91f4b | ||
|  | aa2bbcbcd3 | ||
|  | ea083a8b59 | ||
|  | 3b20dc1dd7 | ||
|  | 5b3b871d79 | ||
|  | 6b593c0b7a | ||
|  | 7535dc796a | ||
|  | 8a341f4d38 | ||
|  | 8ea17294b8 | ||
|  | 757e7feb81 | ||
|  | 76ef5a3993 | ||
|  | bae4b31566 | ||
|  | e23ea371e6 | ||
|  | 77743a4e08 | ||
|  | 7510d9a56e | ||
|  | 75b470c146 | ||
|  | 142d00e32f | ||
|  | 50cccb667e | ||
|  | 202ddf7a54 | ||
|  | 3efc845d1b | ||
|  | dc203452eb | ||
|  | f195052952 | ||
|  | adde46e8ee | ||
|  | d9ec7b48d9 | ||
|  | 6fa6c586db | ||
|  | ce764717bc | ||
|  | c6d4a00ca9 | ||
|  | 4cdc441b9a | ||
|  | 17a68017c0 | ||
|  | 6e9605a00d | ||
|  | e5c8261f76 | ||
|  | 57db1be417 | ||
|  | ebeb5da82c | ||
|  | bd1b6ef5af | ||
|  | 672da3532f | ||
|  | 554cd6ba8c | ||
|  | 585b358204 | ||
|  | 1a87813f14 | ||
|  | fab2936ea2 | ||
|  | 510d86231d | ||
|  | 183e09ee42 | ||
|  | feb83f991e | ||
|  | 5c4f8bdfc7 | ||
|  | 16deaa9c49 | ||
|  | 12dbb90d4a | ||
|  | 0bf5284850 | ||
|  | e3650179c6 | ||
|  | c089afb55b | ||
|  | bfaab253d1 | ||
|  | 4c782b7470 | ||
|  | fceecc5bc1 | ||
|  | cb5d29cd17 | ||
|  | 807544498a | ||
|  | 17f2610d03 | ||
|  | 00935d9eab | ||
|  | c8c04359dd | ||
|  | 534bc2e2a9 | ||
|  | 82960fbf69 | ||
|  | b0c8df81ab | ||
|  | ceab228540 | ||
|  | 03614d2f33 | ||
|  | e17c1d2202 | ||
|  | e27b783426 | ||
|  | 18ef8e7c98 | ||
|  | b34a9dab57 | ||
|  | 7a13c83663 | ||
|  | d4e84664a5 | ||
|  | 29f19424ab | ||
|  | 813e8585a6 | ||
|  | 88337d5109 | ||
|  | 77a5bab1a3 | ||
|  | de63653835 | ||
|  | 2f095b9b09 | ||
|  | 94b61f99c4 | ||
|  | 44b450728d | ||
|  | bc2b379ad0 | ||
|  | f35a545d4f | ||
|  | 0248965561 | ||
|  | 29fb6b3525 | ||
|  | 93bff74a02 | ||
|  | 211c30cbc9 | ||
|  | 1ef3d8407b | ||
|  | b64ede6f45 | ||
|  | a11f829108 | ||
|  | 5715ee5d5d | ||
|  | 08056a38ee | ||
|  | 2591e8f1db | ||
|  | b92036499d | ||
|  | 60a0b0d7c6 | ||
|  | c68f4fb958 | ||
|  | b9a3c2b3ce | ||
|  | 2cddd4cd79 | ||
|  | 052512e2ec | ||
|  | dc1e96acdc | ||
|  | 0eb94349b6 | ||
|  | 846101fe60 | ||
|  | 9af68b1222 | ||
|  | 5c4431cc0a | ||
|  | 308b5f2e0d | ||
|  | 013a664712 | ||
|  | 52eee51001 | ||
|  | 5d62414004 | ||
|  | 5917ec0983 | ||
|  | 06e32f455f | ||
|  | 0ead11e448 | ||
|  | 3edbaf7de6 | ||
|  | e6d349d8e4 | ||
|  | c25a8f9317 | ||
|  | 9f5ddba23f | ||
|  | f5de04549e | ||
|  | fb027ada34 | ||
|  | e990e8c166 | ||
|  | 394ecbde83 | ||
|  | 7ea41a18a5 | ||
|  | 262112dafa | ||
|  | e0fd3762ce | ||
|  | 1274afbe0b | ||
|  | 5f9760b572 | ||
|  | 107c1a4d40 | ||
|  | 809c5a7fc7 | ||
|  | aaab86427a | ||
|  | 5e2c92b8b6 | ||
|  | 84e8b8ea5a | ||
|  | 051690168a | ||
|  | 652f3b41c1 | ||
|  | c5e6547a95 | ||
|  | bc8257a729 | ||
|  | b353233325 | 
							
								
								
									
										1273
									
								
								Make-config
									
									
									
									
									
								
							
							
						
						
									
										1273
									
								
								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) | ||||
							
								
								
									
										968
									
								
								Makefile.X11
									
									
									
									
									
								
							
							
						
						
									
										968
									
								
								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,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,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,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) | ||||
|  | ||||
| @@ -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,10 @@ | ||||
|  | ||||
|                             3Dfx Glide device driver | ||||
|                      3Dfx Glide device driver for Mesa 3.4.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. | ||||
|  | ||||
| NOTE: This information is probably somewhat out of date.  A rewrite is | ||||
| overdue. | ||||
|  | ||||
|  | ||||
| What do you need ? | ||||
| @@ -32,6 +16,8 @@ What do you need ? | ||||
| 	  under Linux (more information in the "Useful Glide Environment | ||||
| 	  Variables"); | ||||
|  | ||||
| 	- Mesa 3.4.2; | ||||
|  | ||||
| 	- 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 | ||||
| 	  compatible with the Glide 2.x so it doesn't work with the current | ||||
| @@ -92,31 +78,28 @@ Linux: | ||||
| 	  If your Glide libraries and headers are in a different directory | ||||
| 	  you'll have to modify the Mesa-config and mklib.glide files. | ||||
|  | ||||
| 	- Unpack the MesaLib-3.1.tar.gz and MesaDemos-3.1.tar.gz archives; | ||||
| 	- Unpack the MesaLib-3.4.2.tar.gz and MesaDemos-3.4.2.tar.gz archives; | ||||
|  | ||||
| 	- If you're going to use a newer Mesa/Glide driver than v0.27 then | ||||
|           unpack the new driver archive over the Mesa directory. | ||||
|  | ||||
| 	- In the Mesa-3.1 directory type "make linux-glide" | ||||
| 	- In the Mesa-3.4.2 directory type "make linux-glide" | ||||
|  | ||||
| 	- Compilation _should_ finish without errors; | ||||
|  | ||||
| 	- Set your LD_LIBRARY_PATH environment variable so that the | ||||
| 	  libglide2x.so and Mesa library files can be found.  For example: | ||||
| 	    setenv LD_LIBRARY_PATH "/usr/local/glide/lib:/SOMEDIR/Mesa-3.1/lib" | ||||
| 	    setenv LD_LIBRARY_PATH "/usr/local/glide/lib:/SOMEDIR/Mesa-3.4.2/lib" | ||||
|  | ||||
| 	- You'll have to run Glide-based programs as root or set the suid | ||||
| 	  bit on executables; | ||||
|  | ||||
| 	- Try a demo: | ||||
| 	    cd gdemos | ||||
| 	    cd demos | ||||
| 	    su | ||||
| 	    setenv MESA_GLX_FX f | ||||
| 	    ./gears     (hit ESC to exit) | ||||
|  | ||||
| 	- You can find the demos especially designed for the Voodoo driver in | ||||
| 	  in the Mesa-3.1/3Dfx/demos directory (type "make" in order to compile | ||||
| 	  everything). | ||||
|  | ||||
| MacOS: | ||||
| ------ | ||||
| @@ -132,13 +115,10 @@ MS Windows: | ||||
|  | ||||
| 	- You must have the vcvars32.bat script in your PATH; | ||||
|  | ||||
| 	- Go to the directory Mesa-3.1 and run the mesafx.bat; | ||||
| 	- Go to the directory Mesa-3.4.2 and run the mesafx.bat; | ||||
|  | ||||
| 	- The script will compile everything (Mesa-3.1/lib/OpenGL32.{lib,dll}, | ||||
| 	  Mesa-3.1/lib/GLU32.{lib,dll}, Mesa-3.1/lib/GLUT32.{lib,dll} and | ||||
|           Voodoo demos); | ||||
|  | ||||
| 	- At the end, you will be in the Mesa-3.1/3Dfx/demos directory; | ||||
| 	- The script will compile everything (Mesa-3.4.2/lib/OpenGL32.{lib,dll}, | ||||
| 	  Mesa-3.4.2/lib/GLU32.{lib,dll}, Mesa-3.4.2/lib/GLUT32.{lib,dll}; | ||||
|  | ||||
| 	- Try some demo (fire.exe, teapot.exe, etc.) in order to check if | ||||
| 	  everything is OK (you can use Alt-Tab or Ctrl-F9 to switch between | ||||
| @@ -150,10 +130,6 @@ MS Windows: | ||||
| 	- I think that you can easy change the Makefile.fx files in order | ||||
| 	  to work with other kind of compilers; | ||||
|  | ||||
| 	- To discover how open the 3Dfx screen, read the sources under | ||||
| 	  the Mesa-3.1/3Dfx/demos directory. You can use the GLUT library or | ||||
|           the Diego Picciani's wgl emulator. | ||||
|  | ||||
| 	NOTE: the MSVC++ 5.0 optimizer is really buggy. Also if you install the | ||||
| 	SP3, you could have some problem (you can disable optimization in order | ||||
| 	solve these kind of problems). | ||||
| @@ -251,7 +227,7 @@ Doing more with Mesa & Linux Glide: | ||||
| 		#endif | ||||
| 		... | ||||
|  | ||||
|        	See the 3Dfx/demos/tunnel.c program | ||||
|        	See the demos/tunnel.c program | ||||
|        	for an example.  You have to set the -DXMESA flag in the Makefile's COPTS | ||||
|        	to enable it. | ||||
|  | ||||
| @@ -410,7 +386,7 @@ Hints and Special Features: | ||||
|         - The Voodoo driver support multiple Voodoo Graphics boards in the | ||||
|           some PC. Using this feature, you can write applications that use | ||||
|           multiple monitors, videoprojectors or HMDs for the output. See | ||||
| 	  Mesa-3.1/3Dfx/demos/tunnel2.c for an example of how setup one | ||||
| 	  Mesa-3.4.2/demos/tunnel2.c for an example of how setup one | ||||
|           context for each board. | ||||
|  | ||||
| 	- The v0.19 introduces a new powerful texture memory manager: the | ||||
| @@ -428,13 +404,8 @@ Hints and Special Features: | ||||
| 	- The Voodoo driver supports the GL_EXT_paletted_texture. it works | ||||
| 	  only with GL_COLOR_INDEX8_EXT, GL_RGBA palettes and the alpha value | ||||
| 	  is ignored because this is a limitation of the the current Glide | ||||
| 	  version and of the Voodoo hardware. See Mesa-3.1/3Dfx/demos/paltex.c for | ||||
| 	  a demo of this extension. | ||||
|  | ||||
| 	- The Voodoo driver directly supports 3Dfx Global Palette extension. | ||||
| 	  It was written for GLQuake and I think that it isn't a good idea | ||||
| 	  to use this extension for any other purpose (it is a trick). See | ||||
| 	  Mesa-3.1/3Dfx/demos/glbpaltex.c for a demo of this extension. | ||||
| 	  version and of the Voodoo hardware. See Mesa-3.4.2/demos/paltex.c | ||||
| 	  for a demo of this extension. | ||||
|  | ||||
| 	- The Voodoo driver chooses the screen resolution according to the | ||||
| 	  requested window size. If you open a 640x480 window, you will get | ||||
| @@ -505,12 +476,12 @@ version of GLQuake with works with the Mesa/3Dfx/Glide combo. | ||||
| Here's what you need to run GLQuake on Linux: | ||||
|    PC with 100MHz Pentium or better | ||||
|    a 3Dfx-based card | ||||
|    Mesa 3.1 libraries:  libMesaGL.so  libMesaGLU.so | ||||
|    Mesa 3.4.2 libraries:  libGL.so  libGLU.so | ||||
|    Glide 2.4 libraries:  libglide2x.so  libtexus.so | ||||
|    GLQuake for Linux. | ||||
|  | ||||
| Also, the windows version of GLQuake works fine with the Mesa OpenGL32.dll, | ||||
| you have only to copy the Mesa-3.1/lib/OpenGL32.dll in the GLQuake directory | ||||
| you have only to copy the Mesa-3.4.2/lib/OpenGL32.dll in the GLQuake directory | ||||
| in order to test 'MesaQuake'. | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -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 | ||||
| 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 | ||||
| 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 | ||||
| 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 | ||||
| working.  No optimizations have been made at this time. | ||||
|  | ||||
|  | ||||
|  | ||||
| * Compiling | ||||
| Compiling | ||||
|  | ||||
| Requirements: | ||||
|   - gcc version 2.95.3 for BeOS  | ||||
|   You can find it here: http://www.bebits.com/app/2157 | ||||
|  | ||||
| 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. | ||||
| In the Mesa-3.x directory type "make -f Makefile.X11 beos-r4". | ||||
| When it finishes the libMesaGL.so and libMesaGLU.so libraries for | ||||
| BeOS will be in the Mesa-3.x/lib/ directory. | ||||
|  | ||||
|  | ||||
| * Example Programs | ||||
|  | ||||
| Look in the Mesa-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 | ||||
| library. | ||||
|  | ||||
|  | ||||
| * GLUT | ||||
|  | ||||
| A beta version of GLUT 3.7 port for BeOS can be found at  | ||||
| http://anobject.com/jehamby/Code/Glut-3.7-x86.zip. | ||||
|   | ||||
| There's is a 2.5 version in src-glut.beos/, too. | ||||
| GLUT | ||||
|  | ||||
| A version of GLUT 2.5 for BeOS can be found in src-glut.beos/. | ||||
| The original distribution can be obtained from | ||||
| http://home.beoscentral.com/jehamby/Glut-3.5-x86.zip | ||||
|  | ||||
| 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 | ||||
| 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 | ||||
| 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 | ||||
|  | ||||
| BDirectWindow single buffering support is not implemented yet. | ||||
| Work Left To Do | ||||
|  | ||||
| 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 | ||||
| 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 | ||||
| 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.6 1999/11/27 01:40:40 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/ | ||||
| @@ -1,85 +1,623 @@ | ||||
| File: docs/README.WIN32 | ||||
|  | ||||
| Last updated: Sep 18, 2003 - Karl Schultz - kschultz@users.sourceforge.net | ||||
|  | ||||
| Quick Start | ||||
|  | ||||
| Unzip both ZIP files (MesaLib and MesaDemos) into the same directory. | ||||
| 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 | ||||
| workspaces and projects.  Makefiles are no longer shipped or supported, but | ||||
| can be generated from the projects using Visual Studio. | ||||
|  | ||||
| Details and Notes | ||||
|  | ||||
| - To build the Mesa libraries, open the Mesa.dsw workspace file | ||||
|   in the top directory.  You can build each project one-by-one, | ||||
|   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 | ||||
|   such as $SystemRoot/SYSTEM32.  If you don't like putting things in a | ||||
|   system directory, place them in the same directory as the executable(s). | ||||
|   Be careful about accidentially overwriting files of the same name in | ||||
|   the SYSTEM32 directory. | ||||
|  | ||||
| - Build the demos by opening the appropriate *.dsw file in the | ||||
|   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 | ||||
|   directory into the same directory as the demo executables, so that | ||||
|   the demos use the Mesa libs you just built. | ||||
|  | ||||
| - The DLL files are built so that the external entry points use the | ||||
|   stdcall calling convention. | ||||
|  | ||||
| - Static LIB files are not built.  The LIB files that are built with | ||||
|   are the linker import files associated with the DLL files.   | ||||
|  | ||||
| - The si-glu sources are used to build the GLU libs.  This was done | ||||
|   mainly to get the better tessellator code. | ||||
|  | ||||
| - The osmesa driver builds and should work on Windows as well as | ||||
|   any other platform. | ||||
|  | ||||
| - The Windows driver (in src/Windows) builds and runs at least at | ||||
|   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 | ||||
|   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 | ||||
|   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 | ||||
|   some work to turn it back on or use it again. | ||||
|  | ||||
| If you have a Windows-related build problem or question, it is | ||||
| 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. | ||||
|  | ||||
|  | ||||
| Karl Schultz | ||||
|  | ||||
|     Mesa/Readme.win32 | ||||
|  | ||||
|     Last Updated: Sunday, September 19th, 1999 - tjump@tertius.com | ||||
|  | ||||
| *** What's New | ||||
|  | ||||
| - Updated for Mesa 3.1beta3/CVS. Debug and Release command-line builds of | ||||
|   Mesa, fxMesa, GLU, GLUT and all sample programs DLL-based. Manual | ||||
|   executions tests with minimum requisite results (aka: things looked like | ||||
|   I expected them to). | ||||
|  | ||||
|   What did you expect, complete regression testing maybe? | ||||
|  | ||||
| - NASM build support. Any file in the project coded as a .S file will | ||||
|   automatically be recognized and built as a NASM-source assember file. | ||||
|  | ||||
|   To enable building using NASM, set the environment variable NASM to | ||||
|   indicate that command to execute to run nasm on a file. If NASM is in | ||||
|   your command search path then all this needs be set to is 'nasmw' - | ||||
|   otherwise you will need to include the complete drive and directory path. | ||||
|  | ||||
|   NASM may be retrieved here: http://www.web-sites.co.uk/nasm/ | ||||
|  | ||||
| - DevStudio projects suspended for compatability reasons: projects modified | ||||
|   by DevStudio 6 are not compatible with DevStudio 5. | ||||
|  | ||||
|   These will slowly be rebuilt and put into CVS as I can. | ||||
|  | ||||
| - Build environment change: The Glide SDK is no longer assumed to be in | ||||
|   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: | ||||
|  | ||||
|     nmake /f nmake.mak GLIDE2X=g:\sdk\glide2x fxmesagl32 | ||||
|  | ||||
|           <or> | ||||
|  | ||||
|     nmake /f nmake.mak GLIDE2X=g:\sdk\glide2x allfx | ||||
|  | ||||
|           <or> | ||||
|  | ||||
|     nmake /f nmake.mak GLIDE2X=g:\sdk\glide2x progs.3dfx.demos | ||||
|  | ||||
|   The DevStudio workspace files for 3Dfx OpenGL require the definition of | ||||
|   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): | ||||
|  | ||||
|        SET GLIDE2SDK=G:\SDK\GLIDE2X | ||||
|  | ||||
| *** Legalese | ||||
|  | ||||
| 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.4.2 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 | ||||
|     each file. | ||||
|  | ||||
|     When finished, the Mesa libraries will be in the Mesa-x.y/lib/ directory. | ||||
|  | ||||
|  | ||||
| 2. The new way: | ||||
|     Type './configure' and then 'make'.  This uses GNU autoconfig. | ||||
|     Run 'make check' to build the demos. | ||||
|     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.3/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: | ||||
| @@ -250,9 +256,15 @@ HPCR glClear(GL_COLOR_BUFFER_BIT) dithering | ||||
|    to HP systems with the HPCR (Color Recovery) system. | ||||
|  | ||||
|  | ||||
| Extensions | ||||
| ========== | ||||
|    There are three Mesa-specific GLX extensions at this time. | ||||
| Extensions: | ||||
|    The following OpenGL GLX extensions are currently implemented: | ||||
|  | ||||
|       GLX_EXT_visual_info - GLX visual and transparent pixel extension | ||||
|       GLX_EXT_visual_rating - GLX visual caveats | ||||
|  | ||||
|    For detailed information about the extensions see www.opengl.org | ||||
|  | ||||
|    There are four Mesa-specific GL/GLX extensions at this time. | ||||
|  | ||||
|    GLX_MESA_pixmap_colormap  | ||||
|  | ||||
| @@ -311,4 +323,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.5.4.3 2001/05/14 19:11:32 brianp Exp $ | ||||
|   | ||||
| @@ -19,4 +19,4 @@ see the VERSIONS file. | ||||
|  | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| $Id: RELNOTES-3.4,v 1.2 2002/03/23 02:37:17 brianp Exp $ | ||||
| $Id: RELNOTES-3.4,v 1.1.2.2 2000/11/02 18:05:34 brianp Exp $ | ||||
|   | ||||
| @@ -19,4 +19,4 @@ 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 $ | ||||
| $Id: RELNOTES-3.4.1,v 1.1.2.2 2001/02/07 22:54:04 brianp Exp $ | ||||
|   | ||||
| @@ -19,4 +19,4 @@ 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 $ | ||||
| $Id: RELNOTES-3.4.2,v 1.1.2.2 2001/05/16 22:29:07 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. | ||||
|  | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
							
								
								
									
										352
									
								
								docs/VERSIONS
									
									
									
									
									
								
							
							
						
						
									
										352
									
								
								docs/VERSIONS
									
									
									
									
									
								
							| @@ -1,3 +1,4 @@ | ||||
| $Id: VERSIONS,v 1.38.2.46 2001/05/17 19:31:55 brianp Exp $ | ||||
|  | ||||
|  | ||||
| Mesa Version History | ||||
| @@ -801,7 +802,6 @@ Mesa Version History | ||||
|     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 | ||||
| @@ -820,356 +820,6 @@ Mesa Version History | ||||
| 	- 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 | ||||
| @@ -1,12 +0,0 @@ | ||||
| <html><head><title>Mesa Source Code Documentation</title> | ||||
| <link href="doxygen.css" rel="stylesheet" type="text/css"> | ||||
| </head> | ||||
| <body><center> | ||||
| <a href="../core/index.html">core</a>  | ||||
| <a href="../array_cache/index.html">array_cache</a>  | ||||
| <a href="../math/index.html">math</a>  | ||||
| <a href="../swrast/index.html">swrast</a>  | ||||
| <a href="../swrast_setup/index.html">swrast_setup</a>  | ||||
| <a href="../tnl/index.html">tnl</a>  | ||||
| <a href="../tnl_dd/index.html">tnl_dd</a>  | ||||
| </center> | ||||
| @@ -1,9 +0,0 @@ | ||||
| <html><head><title>Mesa Source Code Documentation</title> | ||||
| <link href="doxygen.css" rel="stylesheet" type="text/css"> | ||||
| </head> | ||||
| <body><center> | ||||
| <a href="../core_subset/index.html">Mesa Core</a>  | ||||
| <a href="../math_subset/index.html">math</a>  | ||||
| <a href="../miniglx/index.html">MiniGLX</a>  | ||||
| <a href="../radeon_subset/index.html">radeon_subset</a>  | ||||
| </center> | ||||
| @@ -1,49 +0,0 @@ | ||||
| # Doxyfile 0.1 | ||||
|  | ||||
| @INCLUDE               = common.doxy | ||||
|  | ||||
| #--------------------------------------------------------------------------- | ||||
| # General configuration options | ||||
| #--------------------------------------------------------------------------- | ||||
| PROJECT_NAME           = "Mesa math module" | ||||
| #--------------------------------------------------------------------------- | ||||
| # configuration options related to the input files | ||||
| #--------------------------------------------------------------------------- | ||||
| INPUT                  = ../src/mesa/math/ | ||||
| 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            = math | ||||
| #--------------------------------------------------------------------------- | ||||
| # 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               = tnl_dd.tag=../tnl_dd \ | ||||
|                          core.tag=../core \ | ||||
|                          swrast.tag=../swrast \ | ||||
|                          swrast_setup.tag=../swrast_setup \ | ||||
|                          tnl.tag=../tnl \ | ||||
|                          array_cache.tag=../array_cache | ||||
| GENERATE_TAGFILE       = math.tag | ||||
| @@ -1,177 +0,0 @@ | ||||
| # Doxyfile 0.1 | ||||
|  | ||||
| #--------------------------------------------------------------------------- | ||||
| # General configuration options | ||||
| #--------------------------------------------------------------------------- | ||||
| PROJECT_NAME           = "Mesa math module" | ||||
| 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          = NO | ||||
| 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       =  | ||||
| MAX_INITIALIZER_LINES  = 30 | ||||
| OPTIMIZE_OUTPUT_FOR_C  = YES | ||||
| 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/math/ | ||||
| FILE_PATTERNS          = m_matrix.[ch] | ||||
| 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         = NO | ||||
| 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            = math_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_FILE_PATTERNS  =  | ||||
| PREDEFINED             =  | ||||
| EXPAND_AS_DEFINED      =  | ||||
| SKIP_FUNCTION_MACROS   = YES | ||||
| #--------------------------------------------------------------------------- | ||||
| # Configuration::addtions related to external references    | ||||
| #--------------------------------------------------------------------------- | ||||
| TAGFILES               = core_subset.tag=../core_subset | ||||
| GENERATE_TAGFILE       = math_subset.tag | ||||
| ALLEXTERNALS           = NO | ||||
| PERL_PATH              =  | ||||
| #--------------------------------------------------------------------------- | ||||
| # Configuration options related to the dot tool    | ||||
| #--------------------------------------------------------------------------- | ||||
| CLASS_DIAGRAMS         = YES | ||||
| 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,179 +0,0 @@ | ||||
| # Doxyfile 0.1 | ||||
|  | ||||
| #--------------------------------------------------------------------------- | ||||
| # General configuration options | ||||
| #--------------------------------------------------------------------------- | ||||
| PROJECT_NAME           = "MiniGLX" | ||||
| 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       = NO | ||||
| SHOW_INCLUDE_FILES     = NO | ||||
| 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       =  | ||||
| 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/glx/mini/ ../include/GL/miniglx.h | ||||
| FILE_PATTERNS          = *.h *.c | ||||
| RECURSIVE              = NO | ||||
| EXCLUDE                = ../src/glx/mini/glapi.c | ||||
| 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         = NO | ||||
| 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            = miniglx | ||||
| 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		= \ | ||||
| 			 core_subset.tag=../core_subset \ | ||||
|                          math_subset.tag=../math_subset | ||||
| GENERATE_TAGFILE       = miniglx.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,203 +0,0 @@ | ||||
| # Doxyfile 0.1 | ||||
|  | ||||
| #--------------------------------------------------------------------------- | ||||
| # General configuration options | ||||
| #--------------------------------------------------------------------------- | ||||
| PROJECT_NAME           = "Radeon Subset Driver" | ||||
| 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       = NO | ||||
| SHOW_INCLUDE_FILES     = NO | ||||
| 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       =  | ||||
| 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/drivers/dri/common/mm.c \ | ||||
| 			../src/mesa/drivers/dri/common/mm.h \ | ||||
| 			../src/mesa/drivers/dri/radeon/radeon_context.c \ | ||||
| 			../src/mesa/drivers/dri/radeon/radeon_context.h \ | ||||
| 		 	../src/mesa/drivers/dri/radeon/radeon_ioctl.c \ | ||||
| 		 	../src/mesa/drivers/dri/radeon/radeon_ioctl.h \ | ||||
| 		 	../src/mesa/drivers/dri/radeon/radeon_lock.c \ | ||||
| 		 	../src/mesa/drivers/dri/radeon/radeon_lock.h \ | ||||
| 		 	../src/mesa/drivers/dri/radeon/radeon_screen.c \ | ||||
| 		 	../src/mesa/drivers/dri/radeon/radeon_screen.h \ | ||||
| 		 	../src/mesa/drivers/dri/radeon/radeon_state.c \ | ||||
| 		 	../src/mesa/drivers/dri/radeon/radeon_state.h \ | ||||
| 		 	../src/mesa/drivers/dri/radeon/radeon_state_init.c \ | ||||
| 			../src/mesa/drivers/dri/radeon/radeon_subset.h \ | ||||
| 			../src/mesa/drivers/dri/radeon/radeon_subset_bitmap.c \ | ||||
| 			../src/mesa/drivers/dri/radeon/radeon_subset_readpix.c \ | ||||
| 			../src/mesa/drivers/dri/radeon/radeon_subset_select.c \ | ||||
| 			../src/mesa/drivers/dri/radeon/radeon_subset_tex.c \ | ||||
| 			../src/mesa/drivers/dri/radeon/radeon_subset_vtx.c \ | ||||
| 		 	../src/mesa/drivers/dri/radeon/radeon_tcl.h \ | ||||
| 		 	../src/mesa/drivers/dri/radeon/radeon_tex.h \ | ||||
| 		 	../src/mesa/drivers/dri/radeon/radeon_vtxfmt.h \ | ||||
| 			../src/mesa/drivers/dri/radeon/server | ||||
| FILE_PATTERNS          = *.h *.c | ||||
| 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         = NO | ||||
| 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            = radeon_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		= \ | ||||
| 			 core_subset.tag=../core_subset \ | ||||
|                          math_subset.tag=../math_subset \ | ||||
|                          miniglx.tag=../miniglx | ||||
| GENERATE_TAGFILE       = radeon_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,48 +0,0 @@ | ||||
| # Doxyfile 0.1 | ||||
|  | ||||
| @INCLUDE               = common.doxy | ||||
|  | ||||
| #--------------------------------------------------------------------------- | ||||
| # General configuration options | ||||
| #--------------------------------------------------------------------------- | ||||
| PROJECT_NAME           = "Mesa Software Rasterization (swrast)" | ||||
| #--------------------------------------------------------------------------- | ||||
| # configuration options related to the input files | ||||
| #--------------------------------------------------------------------------- | ||||
| INPUT                  = ../src/mesa/swrast/ | ||||
| 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            = swrast | ||||
| #--------------------------------------------------------------------------- | ||||
| # 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               = core.tag=../core \ | ||||
|                          math.tag=../math \ | ||||
|                          tnl_dd.tag=../tnl_dd \ | ||||
|                          swrast_setup.tag=../swrast_setup \ | ||||
|                          tnl.tag=../tnl \ | ||||
|                          array_cache.tag=array_cache | ||||
| GENERATE_TAGFILE       = swrast.tag | ||||
| @@ -1,49 +0,0 @@ | ||||
| # Doxyfile 0.1 | ||||
|  | ||||
| @INCLUDE               = common.doxy | ||||
|  | ||||
| #--------------------------------------------------------------------------- | ||||
| # General configuration options | ||||
| #--------------------------------------------------------------------------- | ||||
| PROJECT_NAME           = "Mesa swrast_setup" | ||||
| #--------------------------------------------------------------------------- | ||||
| # configuration options related to the input files | ||||
| #--------------------------------------------------------------------------- | ||||
| INPUT                  = ../src/mesa/swrast_setup/ | ||||
| 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            = swrast_setup | ||||
| #--------------------------------------------------------------------------- | ||||
| # 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               = tnl_dd.tag=../tnl_dd \ | ||||
|                          core.tag=../core \ | ||||
|                          math.tag=../math \ | ||||
|                          swrast.tag=../swrast \ | ||||
|                          tnl.tag=../tnl \ | ||||
|                          array_cache.tag=../array_cache | ||||
| GENERATE_TAGFILE       = swrast_setup.tag | ||||
| @@ -1,49 +0,0 @@ | ||||
| # Doxyfile 0.1 | ||||
|  | ||||
| @INCLUDE               = common.doxy | ||||
|  | ||||
| #--------------------------------------------------------------------------- | ||||
| # General configuration options | ||||
| #--------------------------------------------------------------------------- | ||||
| PROJECT_NAME           = "Mesa Transform and Lighting (tnl)" | ||||
| #--------------------------------------------------------------------------- | ||||
| # configuration options related to the input files | ||||
| #--------------------------------------------------------------------------- | ||||
| INPUT                  = ../src/mesa/tnl/ | ||||
| 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            = tnl | ||||
| #--------------------------------------------------------------------------- | ||||
| # 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               = tnl_dd.tag=../tnl \ | ||||
|                          core.tag=../core \ | ||||
|                          math.tag=../math \ | ||||
|                          swrast.tag=../swrast \ | ||||
|                          swrast_setup.tag=swrast_setup \ | ||||
|                          array_cache.tag=array_cache | ||||
| GENERATE_TAGFILE       = tnl.tag | ||||
| @@ -1,48 +0,0 @@ | ||||
| # Doxyfile 0.1 | ||||
|  | ||||
| @INCLUDE               = common.doxy | ||||
|  | ||||
| #--------------------------------------------------------------------------- | ||||
| # General configuration options | ||||
| #--------------------------------------------------------------------------- | ||||
| PROJECT_NAME           = "Mesa tnl_dd" | ||||
| #--------------------------------------------------------------------------- | ||||
| # configuration options related to the input files | ||||
| #--------------------------------------------------------------------------- | ||||
| INPUT                  = ../src/mesa/tnl_dd/ | ||||
| FILE_PATTERNS          = *.c *.h | ||||
| RECURSIVE              = YES | ||||
| 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            = tnl_dd | ||||
| #--------------------------------------------------------------------------- | ||||
| # 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 \ | ||||
|                          math.tag=../math \ | ||||
|                          swrast.tag=../swrast \ | ||||
|                          swrast_setup.tag=../swrast_setup \ | ||||
|                          tnl.tag=../tnl \ | ||||
|                          array_cache.tag=array_cache | ||||
| GENERATE_TAGFILE       = tnl_dd.tag | ||||
| @@ -2,42 +2,33 @@ | ||||
|  | ||||
| GLincludedir = $(includedir)/GL | ||||
|  | ||||
| INC_FX = fxmesa.h | ||||
| INC_GGI = ggimesa.h | ||||
| INC_OSMESA = osmesa.h | ||||
| INC_SVGA = svgamesa.h | ||||
| INC_X11 = glx.h glxext.h glx_mangle.h xmesa.h xmesa_x.h xmesa_xf86.h | ||||
| INC_GLUT = glut.h glutf90.h | ||||
|  | ||||
| if HAVE_FX | ||||
| sel_inc_fx = $(INC_FX) | ||||
| INC_FX = fxmesa.h | ||||
| endif | ||||
|  | ||||
| if HAVE_GGI | ||||
| sel_inc_ggi = $(INC_GGI) | ||||
| INC_GGI = ggimesa.h | ||||
| endif | ||||
|  | ||||
| if HAVE_OSMESA | ||||
| sel_inc_osmesa = $(INC_OSMESA) | ||||
| INC_OSMESA = osmesa.h | ||||
| endif | ||||
|  | ||||
| if HAVE_SVGA | ||||
| sel_inc_svga = $(INC_SVGA) | ||||
| INC_SVGA = svgamesa.h | ||||
| endif | ||||
|  | ||||
| if HAVE_X11 | ||||
| sel_inc_x11 = $(INC_X11) | ||||
| INC_X11 = glx.h glx_mangle.h xmesa.h xmesa_x.h xmesa_xf86.h | ||||
| endif | ||||
|  | ||||
| if NEED_GLUT | ||||
| sel_inc_glut = $(INC_GLUT) | ||||
| INC_GLUT = glut.h | ||||
| endif | ||||
|  | ||||
| EXTRA_HEADERS = amesa.h dosmesa.h foomesa.h glut_h.dja mesa_wgl.h mglmesa.h \ | ||||
| 	vms_x_fix.h wmesa.h \ | ||||
| 	$(INC_FX) $(INC_GGI) $(INC_OSMESA) $(INC_SVGA) $(INC_X11) $(INC_GLUT) | ||||
| EXTRA_DIST = fxmesa.h ggimesa.h osmesa.h svgamesa.h \ | ||||
| 	glx.h glx_mangle.h xmesa.h xmesa_x.h xmesa_xf86.h | ||||
|  | ||||
| GLinclude_HEADERS = gl.h glext.h gl_mangle.h glu.h glu_mangle.h \ | ||||
| 	$(sel_inc_fx) $(sel_inc_ggi) $(sel_inc_osmesa) $(sel_inc_svga) \ | ||||
| 	$(sel_inc_x11) $(sel_inc_glut) | ||||
| include $(top_srcdir)/common_rules.make | ||||
| 	$(INC_FX) $(INC_GGI) $(INC_OSMESA) $(INC_SVGA) $(INC_X11) $(INC_GLUT) | ||||
|  | ||||
|   | ||||
| @@ -1,3 +1,5 @@ | ||||
| /* $Id: amesa.h,v 1.2 2000/02/09 19:03:28 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|   | ||||
| @@ -1,147 +0,0 @@ | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  5.0 | ||||
|  *  | ||||
|  * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a | ||||
|  * copy of this software and associated documentation files (the "Software"), | ||||
|  * to deal in the Software without restriction, including without limitation | ||||
|  * the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||||
|  * and/or sell copies of the Software, and to permit persons to whom the | ||||
|  * Software is furnished to do so, subject to the following conditions: | ||||
|  *  | ||||
|  * The above copyright notice and this permission notice shall be included | ||||
|  * in all copies or substantial portions of the Software. | ||||
|  *  | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | ||||
|  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL | ||||
|  * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN | ||||
|  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||||
|  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
|  */ | ||||
|  | ||||
| /* | ||||
|  * DOS/DJGPP device driver v1.4 for Mesa | ||||
|  * | ||||
|  *  Copyright (C) 2002 - Borca Daniel | ||||
|  *  Email : dborca@users.sourceforge.net | ||||
|  *  Web   : http://www.geocities.com/dborca | ||||
|  */ | ||||
|  | ||||
|  | ||||
| #ifndef DMESA_H_included | ||||
| #define DMESA_H_included | ||||
|  | ||||
| #define DMESA_MAJOR_VERSION 5 | ||||
| #define DMESA_MINOR_VERSION 0 | ||||
|  | ||||
| /* Sample Usage: | ||||
|  * | ||||
|  * 1. Call DMesaCreateVisual() to initialize graphics. | ||||
|  * 2. Call DMesaCreateContext() to create a DMesa rendering context. | ||||
|  * 3. Call DMesaCreateBuffer() to define the window. | ||||
|  * 4. Call DMesaMakeCurrent() to bind the DMesaBuffer to a DMesaContext. | ||||
|  * 5. Make gl* calls to render your graphics. | ||||
|  * 6. Use DMesaSwapBuffers() when double buffering to swap front/back buffers. | ||||
|  * 7. Before exiting, destroy DMesaBuffer, DMesaContext and DMesaVisual. | ||||
|  */ | ||||
|  | ||||
| typedef struct dmesa_context *DMesaContext; | ||||
| typedef struct dmesa_visual *DMesaVisual; | ||||
| typedef struct dmesa_buffer *DMesaBuffer; | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| extern "C" { | ||||
| #endif | ||||
|  | ||||
| /* | ||||
|  * Create a new Visual and set graphics mode. | ||||
|  */ | ||||
| DMesaVisual DMesaCreateVisual (GLint width,        /* X res */ | ||||
|                                GLint height,       /* Y res */ | ||||
|                                GLint colDepth,     /* BPP */ | ||||
|                                GLint refresh,      /* refresh rate: 0=default */ | ||||
|                                GLboolean dbFlag,   /* double-buffered */ | ||||
|                                GLboolean rgbFlag,  /* RGB mode */ | ||||
|                                GLint alphaSize,    /* requested bits/alpha */ | ||||
|                                GLint depthSize,    /* requested bits/depth */ | ||||
|                                GLint stencilSize,  /* requested bits/stencil */ | ||||
|                                GLint accumSize);   /* requested bits/accum */ | ||||
|  | ||||
| /* | ||||
|  * Destroy Visual and restore screen. | ||||
|  */ | ||||
| void DMesaDestroyVisual (DMesaVisual v); | ||||
|  | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Create a new Context for rendering. | ||||
|  */ | ||||
| DMesaContext DMesaCreateContext (DMesaVisual visual, DMesaContext share); | ||||
|  | ||||
| /* | ||||
|  * Destroy Context. | ||||
|  */ | ||||
| void DMesaDestroyContext (DMesaContext c); | ||||
|  | ||||
| /* | ||||
|  * Return a handle to the current context. | ||||
|  */ | ||||
| void *DMesaGetCurrentContext (void); | ||||
|  | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Create a new Buffer (window). | ||||
|  */ | ||||
| DMesaBuffer DMesaCreateBuffer (DMesaVisual visual, | ||||
|                                GLint xpos, GLint ypos, | ||||
|                                GLint width, GLint height); | ||||
|  | ||||
| /* | ||||
|  * Destroy Buffer. | ||||
|  */ | ||||
| void DMesaDestroyBuffer (DMesaBuffer b); | ||||
|  | ||||
| /* | ||||
|  * Swap the front and back buffers for the given Buffer. | ||||
|  * No action is taken if the buffer is not double buffered. | ||||
|  */ | ||||
| void DMesaSwapBuffers (DMesaBuffer b); | ||||
|  | ||||
| /* | ||||
|  * Bind Buffer to Context and make the Context the current one. | ||||
|  */ | ||||
| GLboolean DMesaMakeCurrent (DMesaContext c, DMesaBuffer b); | ||||
|  | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Move/Resize current Buffer. | ||||
|  */ | ||||
| GLboolean DMesaMoveBuffer (GLint xpos, GLint ypos); | ||||
| GLboolean DMesaResizeBuffer (GLint width, GLint height); | ||||
|  | ||||
| /* | ||||
|  * Set palette index, using normalized values. | ||||
|  */ | ||||
| void DMesaSetCI (int ndx, GLfloat red, GLfloat green, GLfloat blue); | ||||
|  | ||||
| /* | ||||
|  * DMesa state retrieval. | ||||
|  */ | ||||
| #define DMESA_GET_SCREEN_SIZE 0x0100 | ||||
| #define DMESA_GET_DRIVER_CAPS 0x0200 | ||||
|  | ||||
| #define DMESA_DRIVER_SWDB_BIT 0x1 /* software double-buffered */ | ||||
| #define DMESA_DRIVER_LLWO_BIT 0x2 /* lower-left window origin */ | ||||
| int DMesaGetIntegerv (GLenum pname, GLint *params); | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
|  | ||||
| #endif | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user