summaryrefslogtreecommitdiff
path: root/xc/extras/Mesa/docs
diff options
context:
space:
mode:
Diffstat (limited to 'xc/extras/Mesa/docs')
-rw-r--r--xc/extras/Mesa/docs/CONFIG120
-rw-r--r--xc/extras/Mesa/docs/CONFORM754
-rw-r--r--xc/extras/Mesa/docs/COPYRIGHT155
-rw-r--r--xc/extras/Mesa/docs/DEVINFO148
-rw-r--r--xc/extras/Mesa/docs/IAFA-PACKAGE9
-rw-r--r--xc/extras/Mesa/docs/INSTALL236
-rw-r--r--xc/extras/Mesa/docs/INSTALL.GNU182
-rw-r--r--xc/extras/Mesa/docs/MESA_copy_sub_buffer.spec88
-rw-r--r--xc/extras/Mesa/docs/MESA_pixmap_colormap.spec90
-rw-r--r--xc/extras/Mesa/docs/MESA_release_buffers.spec85
-rw-r--r--xc/extras/Mesa/docs/MESA_resize_buffers.spec82
-rw-r--r--xc/extras/Mesa/docs/MESA_set_3dfx_mode.spec85
-rw-r--r--xc/extras/Mesa/docs/MESA_window_pos.spec127
-rw-r--r--xc/extras/Mesa/docs/README513
-rw-r--r--xc/extras/Mesa/docs/README.3DFX598
-rw-r--r--xc/extras/Mesa/docs/README.AMIWIN181
-rw-r--r--xc/extras/Mesa/docs/README.BEOS102
-rw-r--r--xc/extras/Mesa/docs/README.D3D124
-rw-r--r--xc/extras/Mesa/docs/README.DJA69
-rw-r--r--xc/extras/Mesa/docs/README.DOS121
-rw-r--r--xc/extras/Mesa/docs/README.GGI26
-rw-r--r--xc/extras/Mesa/docs/README.LYNXOS64
-rw-r--r--xc/extras/Mesa/docs/README.MINGW3253
-rw-r--r--xc/extras/Mesa/docs/README.MITS102
-rw-r--r--xc/extras/Mesa/docs/README.NeXT6
-rw-r--r--xc/extras/Mesa/docs/README.OS296
-rw-r--r--xc/extras/Mesa/docs/README.OpenStep35
-rw-r--r--xc/extras/Mesa/docs/README.QUAKE208
-rw-r--r--xc/extras/Mesa/docs/README.THREADS52
-rw-r--r--xc/extras/Mesa/docs/README.VMS28
-rw-r--r--xc/extras/Mesa/docs/README.WIN32623
-rw-r--r--xc/extras/Mesa/docs/README.X11326
-rw-r--r--xc/extras/Mesa/docs/RELNOTES-3.1146
-rw-r--r--xc/extras/Mesa/docs/RELNOTES-3.212
-rw-r--r--xc/extras/Mesa/docs/RELNOTES-3.2.132
-rw-r--r--xc/extras/Mesa/docs/RELNOTES-3.3271
-rw-r--r--xc/extras/Mesa/docs/RELNOTES-3.422
-rw-r--r--xc/extras/Mesa/docs/VERSIONS777
38 files changed, 6748 insertions, 0 deletions
diff --git a/xc/extras/Mesa/docs/CONFIG b/xc/extras/Mesa/docs/CONFIG
new file mode 100644
index 000000000..eaaa52c99
--- /dev/null
+++ b/xc/extras/Mesa/docs/CONFIG
@@ -0,0 +1,120 @@
+
+ Mesa config file documentation
+
+
+As of Mesa 3.1 beta 2, a config file can be used to configure various
+Mesa parameters. For example, extensions can be enable/disabled,
+glHints can be specified, etc. More config options will be added
+in the future.
+
+The config file uses a Lisp-like syntax.
+
+Here's Keith's description of the file with a few examples.
+
+
+
+;; -*-lisp-*-
+;;
+;; KW: New mesa configuration file, syntax following a lisp style.
+;;
+;; valid syntax:
+;;
+;; (config-mesa version configs)
+;;
+;; where:
+;; version - is the version number of mesa for which the configuration
+;; was written. Future versions will use this to check for upwards
+;; compatibility. There is however no guarentee that old configurations
+;; will continue to be respected.
+;;
+;; configs - is a list of valid configuration lists, as specified by:
+;;
+;; (default-hint variable value)
+;; (disable-extension name)
+;; (fx-catch-signals {true|false})
+;;
+;; Mesa will look for an environment variable MESA_CONFIG, and try to
+;; execute that profile. Otherwise, it will fallback to the profile
+;; with the same name as the current mesa version. As default
+;; profiles should normally be empty or near-empty, this should be
+;; sufficiently powerful.
+;;
+
+
+;; Guareenteed to be an empty config.
+;;
+(config-mesa empty ())
+
+
+;; Default profile - should normally be an empty list of
+;; configurations.
+;;
+(config-mesa mesa3.1beta1 ())
+
+
+(config-mesa no-cva ((disable-extension GL_EXT_compiled_vertex_array)))
+
+
+;; Turn off some compliance for the sake of speed.
+;;
+(config-mesa quake2
+ (
+ ;; Quake2 likes this extension, but it really hurts performance if
+ ;; you don't also disable software fallbacks, below. (And do
+ ;; something else to stop the eye-space calculations too...)
+ ;;
+ (disable-extension GL_EXT_point_parameters)
+
+ ;; These hints are honoured only by the 3dfx driver - the X driver
+ ;; continues to function even if you specify hardware-only
+ ;; rendering.
+ ;;
+ ;(default-hint GL_ALLOW_DRAW_OBJ_HINT_PGI GL_TRUE) ; wishful thinking
+ ;(default-hint GL_ALLOW_DRAW_WIN_HINT_PGI GL_TRUE) ; allow 3dfx
+hardware...
+ ;(default-hint GL_ALLOW_DRAW_SPN_HINT_PGI GL_FALSE) ; no software spans
+ ;(default-hint GL_ALLOW_DRAW_MEM_HINT_PGI GL_FALSE) ; no softare pixels
+
+ ;; Lock in the hints specified above.
+ ;;
+ (disable-extension GL_PGI_misc_hints)))
+
+
+;; Turn off some compliance for the sake of speed.
+;;
+(config-mesa quake2b
+ (
+ ;; Quake2 likes this extension, but it really hurts performance if
+ ;; you don't also disable software fallbacks, below. (And do
+ ;; something else to stop the eye-space calculations too...)
+ ;;
+ ;(disable-extension GL_EXT_point_parameters)
+
+ ;; These hints are honoured only by the 3dfx driver - the X driver
+ ;; continues to function even if you specify hardware-only
+ ;; rendering.
+ ;;
+ (default-hint GL_ALLOW_DRAW_OBJ_HINT_PGI GL_TRUE) ; wishful thinking
+ (default-hint GL_ALLOW_DRAW_WIN_HINT_PGI GL_TRUE) ; allow 3dfx
+hardware...
+ (default-hint GL_ALLOW_DRAW_SPN_HINT_PGI GL_FALSE) ; no software spans
+ (default-hint GL_ALLOW_DRAW_MEM_HINT_PGI GL_FALSE) ; no softare pixels
+
+ ;; Lock in the hints specified above.
+ ;;
+ (disable-extension GL_PGI_misc_hints)))
+
+
+;; Just some reminders for me.
+;;
+(config-mesa todo-list
+ (
+ ;; Allows us to slot in simpler lighting routines - not
+ ;; implemented.
+ ;;
+ (default-hint GL_STRICT_POINT_DISTANCE_HINT_MESA GL_FALSE)
+ (default-hint GL_STRICT_LIGHTING_HINT_PGI GL_FALSE)))
+
+
+----------------------------------------------------------------------
+$Id: CONFIG,v 1.1.1.1 2000/11/30 17:31:36 dawes Exp $
diff --git a/xc/extras/Mesa/docs/CONFORM b/xc/extras/Mesa/docs/CONFORM
new file mode 100644
index 000000000..b5345022f
--- /dev/null
+++ b/xc/extras/Mesa/docs/CONFORM
@@ -0,0 +1,754 @@
+
+I (Brian Paul) have been given the OpenGL conformance tests for the
+purpose of testing Mesa. The test source code can not be disclosed.
+
+Below are the results of testing Mesa 3.4 beta as of November 1, 2000.
+The results are identical to Mesa 3.3.
+
+The tests were run using the software X11 device driver on a 24-bit
+display. Using 16-bit or 8-bit display modes results in some conformance
+failures. That's almost certainly because of dithering errors.
+
+Mesa's antialiased line algorithm will have to be rewritten to
+pass the remaining conformance failures.
+
+
+-----------------------------------------------------------------------------
+
+
+COVERAGE TESTS
+--------------
+
+Test that all API functions accept the spec'd parameters and reject
+illegal parameters. Results of each test is either pass or fail.
+
+covgl test: passed.
+
+covglu test: can't compile; Mesa doesn't have GLU 1.2
+
+covglx test: passed.
+
+primtest: 292159 Combinations tested. Passed.
+
+
+
+
+GL CONFORMANCE TEST
+===================
+
+Render test images, read them back, then test for expected results.
+
+
+----------------------------------------------------------------------
+% conform -v 2
+
+OpenGL Conformance Test
+Version 1.1.1
+
+Setup Report.
+ Verbose level = 2.
+ Random number seed = 1.
+ Path inactive.
+
+Visual Report.
+ Display ID = 34. Indirect 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.
+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 Light test passed.
+Ambient Material test passed.
+Ambient Scene test passed.
+Attenuation Constants 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.
+
+Conform passed.
+
+----------------------------------------------------------------------
+% conform -v 2 -p 1
+
+OpenGL Conformance Test
+Version 1.1.1
+
+Setup Report.
+ Verbose level = 2.
+ Random number seed = 1.
+ Path level = 1.
+
+Visual Report.
+ Display ID = 34. Indirect 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.
+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 Light test passed.
+Ambient Material test passed.
+Ambient Scene test passed.
+Attenuation Constants 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.
+
+Conform passed.
+
+----------------------------------------------------------------------
+% conform -v 2 -p 2
+
+OpenGL Conformance Test
+Version 1.1.1
+
+Setup Report.
+ Verbose level = 2.
+ Random number seed = 1.
+ Path level = 2.
+
+Visual Report.
+ Display ID = 34. Indirect 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.
+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 failed.
+ File - lineaa.c, line - 165.
+ Coverage is 1.99216, initial coverage was 0.996078. Error margin is
+ 0.655922.
+ State Report. (Current) <-> (Default)
+ GL_ATTRIB_STACK_DEPTH (State Information)
+ 1.00 <-> 0.00
+ GL_BLEND (State Information)
+ GL_TRUE <-> GL_FALSE
+ GL_BLEND_DST (State Information)
+ GL_LINES <-> GL_NONE
+ GL_BLEND_SRC (State Information)
+ GL_SRC_ALPHA <-> GL_LINES
+ GL_CURRENT_COLOR (State Information)
+ 1.00 0.00 0.00 1.00 <-> 1.00 1.00 1.00 1.00
+ GL_DITHER (State Information)
+ GL_FALSE <-> GL_TRUE
+ GL_LINE_SMOOTH (State Information)
+ GL_TRUE <-> GL_FALSE
+ GL_LINE_STIPPLE_PATTERN (State Information)
+ 0.00 <-> 65535.00
+ GL_LOGIC_OP (State Information)
+ GL_TRUE <-> GL_FALSE
+ GL_PROJECTION_MATRIX (State Information)
+ +0.020 +0.000 +0.000 +0.000 <-> +1.000 +0.000 +0.000 +0.000
+ +0.000 +0.020 +0.000 +0.000 <-> +0.000 +1.000 +0.000 +0.000
+ +0.000 +0.000 -1.000 +0.000 <-> +0.000 +0.000 +1.000 +0.000
+ -1.000 -1.000 +0.000 +1.000 <-> +0.000 +0.000 +0.000 +1.000
+ GL_POLYGON_STIPPLE (State Information)
+ 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF
+ 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF
+ 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF
+ 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF
+ 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF
+ 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF
+ 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF
+ 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF
+ 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF
+ 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF
+ 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF
+ 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF
+ 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF
+ 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF
+ 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF
+ 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF
+ Path Report.
+ Alias Path inactive.
+ Alpha Path inactive.
+ Blend Path inactive.
+ Depth Path inactive.
+ Dither Path active.
+ Fog Path inactive.
+ LogicOp Path active.
+ Function = GL_COPY.
+ Shade model Path = GL_SMOOTH.
+ Stencil Path inactive.
+ Stipple Path inactive.
+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 Light test passed.
+Ambient Material test passed.
+Ambient Scene test passed.
+Attenuation Constants 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.
+
+Conform failed.
+ Anti-aliased Line test (Test number #36) failed.
+
+----------------------------------------------------------------------
+% conform -v 2 -p 3
+
+OpenGL Conformance Test
+Version 1.1.1
+
+Setup Report.
+ Verbose level = 2.
+ Random number seed = 1.
+ Path level = 3.
+
+Visual Report.
+ Display ID = 34. Indirect 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.
+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 failed.
+ File - lineaa.c, line - 165.
+ Coverage is 1.99216, initial coverage was 0.996078. Error margin is
+ 0.655922.
+ State Report. (Current) <-> (Default)
+ GL_ATTRIB_STACK_DEPTH (State Information)
+ 1.00 <-> 0.00
+ GL_BLEND (State Information)
+ GL_TRUE <-> GL_FALSE
+ GL_BLEND_DST (State Information)
+ GL_LINES <-> GL_NONE
+ GL_BLEND_SRC (State Information)
+ GL_SRC_ALPHA <-> GL_LINES
+ GL_CURRENT_COLOR (State Information)
+ 1.00 0.00 0.00 1.00 <-> 1.00 1.00 1.00 1.00
+ GL_DITHER (State Information)
+ GL_FALSE <-> GL_TRUE
+ GL_FOG (State Information)
+ GL_TRUE <-> GL_FALSE
+ GL_FOG_COLOR (State Information)
+ 1.00 1.00 1.00 1.00 <-> 0.00 0.00 0.00 0.00
+ GL_FOG_DENSITY (State Information)
+ 0.00 <-> 1.00
+ GL_FOG_MODE (State Information)
+ GL_EXP2 <-> GL_EXP
+ GL_LINE_SMOOTH (State Information)
+ GL_TRUE <-> GL_FALSE
+ GL_LINE_STIPPLE (State Information)
+ GL_TRUE <-> GL_FALSE
+ GL_LINE_STIPPLE_REPEAT (State Information)
+ 10.00 <-> 1.00
+ GL_POLYGON_STIPPLE (State Information)
+ GL_TRUE <-> GL_FALSE
+ GL_PROJECTION_MATRIX (State Information)
+ +0.020 +0.000 +0.000 +0.000 <-> +1.000 +0.000 +0.000 +0.000
+ +0.000 +0.020 +0.000 +0.000 <-> +0.000 +1.000 +0.000 +0.000
+ +0.000 +0.000 -1.000 +0.000 <-> +0.000 +0.000 +1.000 +0.000
+ -1.000 -1.000 +0.000 +1.000 <-> +0.000 +0.000 +0.000 +1.000
+ GL_SHADE_MODEL (State Information)
+ GL_FLAT <-> GL_SMOOTH
+ GL_STENCIL_FUNC (State Information)
+ GL_GEQUAL <-> GL_ALWAYS
+ GL_STENCIL_REF (State Information)
+ 1.00 <-> 0.00
+ GL_STENCIL_TEST (State Information)
+ GL_TRUE <-> GL_FALSE
+ GL_STENCIL_VALUE_MASK (State Information)
+ 0.00 <-> 255.00
+ Path Report.
+ Alias Path inactive.
+ Alpha Path inactive.
+ Blend Path inactive.
+ Depth Path active.
+ Clear value = 0.000000.
+ Range = 0.000000, 1.000000.
+ Function = GL_ALWAYS.
+ Dither Path active.
+ Fog Path active.
+ RGBA color = 1.000000, 1.000000, 1.000000, 1.000000.
+ Color Index = 0.0.
+ Density = 0.000000.
+ Start and end values = 0.000000, 1.000000.
+ Mode = GL_EXP2.
+ LogicOp Path inactive.
+ Shade model Path = GL_FLAT.
+ Stencil Path active.
+ Clear value = 0.
+ Mask value = FF.
+ Function = GL_GEQUAL, reference = 1, mask = 0.
+ Op1 = GL_KEEP, op2 = GL_KEEP, op3 = GL_KEEP.
+ Stipple Path active.
+ Line stipple = FFFF, repeat = 10.
+ Polygon stipple = FF, FF, FF, FF, FF, FF, FF, FF
+ FF, FF, FF, FF, FF, FF, FF, FF
+ FF, FF, FF, FF, FF, FF, FF, FF
+ FF, FF, FF, FF, FF, FF, FF, FF
+ FF, FF, FF, FF, FF, FF, FF, FF
+ FF, FF, FF, FF, FF, FF, FF, FF
+ FF, FF, FF, FF, FF, FF, FF, FF
+ FF, FF, FF, FF, FF, FF, FF, FF
+ FF, FF, FF, FF, FF, FF, FF, FF
+ FF, FF, FF, FF, FF, FF, FF, FF
+ FF, FF, FF, FF, FF, FF, FF, FF
+ FF, FF, FF, FF, FF, FF, FF, FF
+ FF, FF, FF, FF, FF, FF, FF, FF
+ FF, FF, FF, FF, FF, FF, FF, FF
+ FF, FF, FF, FF, FF, FF, FF, FF
+ FF, FF, FF, FF, FF, FF, FF, FF
+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 Light test passed.
+Ambient Material test passed.
+Ambient Scene test passed.
+Attenuation Constants 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.
+
+Conform failed.
+ Anti-aliased Line test (Test number #36) failed.
+
+----------------------------------------------------------------------
+% conform -v 2 -p 4
+
+OpenGL Conformance Test
+Version 1.1.1
+
+Setup Report.
+ Verbose level = 2.
+ Random number seed = 1.
+ Path level = 4.
+
+Visual Report.
+ Display ID = 34. Indirect 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.
+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 Light test passed.
+Ambient Material test passed.
+Ambient Scene test passed.
+Attenuation Constants 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.
+
+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.
+
+
+NOTE: conformx passes for all machine path levels (-p option).
+
+
+-----------------------------------------------------------------------------
+$Id: CONFORM,v 1.1.1.1 2000/11/30 17:31:36 dawes Exp $
diff --git a/xc/extras/Mesa/docs/COPYRIGHT b/xc/extras/Mesa/docs/COPYRIGHT
new file mode 100644
index 000000000..466b9af56
--- /dev/null
+++ b/xc/extras/Mesa/docs/COPYRIGHT
@@ -0,0 +1,155 @@
+
+ Mesa Copyright Information
+
+
+The Mesa distribution consists of several components. Different copyrights
+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 the respective authors.
+
+Through version 3.0, the core Mesa library was been distributed under the
+GNU Library General Public License.
+
+In Mesa 3.1 (and later) the core library instead uses the XFree86 copyright.
+The copyright was being changed so that Mesa could be integrated into the
+XFree86 X server in order to support 3D hardware acceleration. Mesa will
+still also be supported as a stand-alone library.
+
+If you have contributed code to Mesa in the past and don't want your
+code included in the non-GNU LGPL version please contact Brian to
+have your code removed.
+
+
+
+
+Common questions about the copyright change
+-------------------------------------------
+
+Q1. Why was the copyright changed?
+
+A1. Mesa is being integrated with XFree86 (the free X server for Linux
+and other Unix-like operating systems) in order to better support
+3D hardware on Linux. All code used in XFree86 must use the XFree86
+copyright. 3D hardware acceleration on Linux is long overdue. The
+Mesa copyright change will allow better hardware support on Linux in
+the near future.
+
+
+Q2. Is it legal to change the copyright?
+
+A2. Yes, since I (Brian Paul) hold the copyright.
+
+
+Q3. I contributed code to Mesa while under the GNU copyright and don't
+agree with the new copyright. What can I do?
+
+A3. I'll remove any such code upon request. So far, no one has made
+this request.
+
+
+Q4. The XFree86 copyright allows people/companies to release binary-only
+works derived from the Mesa code. Isn't that bad?
+
+A4. It's somewhat unfortunate, but acceptable. However, it really is in a
+company's best interest to keep modification to open-source software in the
+open-source domain. See the open-source essays written by Eric Raymond for
+the reasoning. Also note that any such concerns can be applied to the
+XFree86 project as well. It seems to be doing well.
+
+
+
+Attention Contributors
+----------------------
+
+If you want to contribute to the Mesa project please consider the
+copyright issues. If you contribute a bug fix or new feature to
+an existing component you should agree to the copyright on that
+component before submitting the bug fix or feature code.
+
+If you want to contribute a new component, such as a new device
+driver or demo program, then you can put whatever copyright you want
+on your code. Insert the copyright into all files to avoid confusion.
+
+
+
+
+Mesa component copyrights
+-------------------------
+
+Component Files Primary Author Copyright
+-------------------------------------------------------------------------------
+core Mesa code src/*.[ch] Brian Paul See below (*)
+ include/GL/gl.h
+
+GLU library src-glu/* Brian Paul GNU-LGPL
+ include/GL/glu.h
+
+GLX driver src/X/* Brian Paul See below (*)
+ include/GL/glx.h
+ include/GL/xmesa.h
+
+OS/Mesa driver src/OSmesa/* Brian Paul See below (*)
+ include/GL/osmesa.h
+
+3Dfx driver src/FX/* David Bucciarelli GNU-LGPL
+ include/GL/fxmesa.h
+
+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
+
+BeOS R4 driver src/BeOS/* Brian Paul See below (*)
+
+GLUT src-glut/* Mark Kilgard Mark's copyright
+ include/GL/*glut*.h
+
+demo programs demos/* various see source file
+
+X demos xdemos/* Brian Paul see source file
+
+SGI demos samples/* SGI SGI copyright
+
+RedBook demos book/* SGI SGI copyright
+
+
+
+(*) Main Mesa Copyright
+-----------------------
+
+Mesa code without an explicit copyright is covered by the following
+copyright:
+
+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.
+
+----------------------------------------------------------------------
+$Id: COPYRIGHT,v 1.1.1.1 2000/11/30 17:31:37 dawes Exp $
diff --git a/xc/extras/Mesa/docs/DEVINFO b/xc/extras/Mesa/docs/DEVINFO
new file mode 100644
index 000000000..51787676e
--- /dev/null
+++ b/xc/extras/Mesa/docs/DEVINFO
@@ -0,0 +1,148 @@
+
+
+ Information for Mesa developers
+
+
+Adding Extentions
+-----------------
+
+To add a new GL extension to Mesa you have to do the following.
+
+ 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
+
+ If adding new GL state be sure to update get.c and enable.c
+
+ Document the extension in the README file. Either include a pointer
+ to the extension spec or write an extension spec and put it in the
+ Mesa/docs/ directory.
+
+
+
+Coding Style
+------------
+
+Mesa's code style has changed over the years. Here's the latest.
+
+Comment your code! It's extremely important that open-source code be
+well documented. Also, strive to write clean, easily understandable code.
+
+3-space indentation
+
+If you use tabs, set them to 8 columns
+
+Brace example:
+
+ if (condition) {
+ foo;
+ }
+ else {
+ bar;
+ }
+
+Here's the GNU indent command which will best approximate my preferred style:
+
+ indent -br -i3 -npcs infile.c -o outfile.c
+
+
+Local variable name example: localVarName (no underscores)
+
+Constants and macros are ALL UPPERCASE, with _ between words
+
+Global vars not allowed.
+
+Function name examples:
+ glFooBar() - a public GL entry point
+ _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 Mesa function
+
+
+
+Writing a Device Driver
+-----------------------
+
+XXX to do
+
+
+
+Making a New Mesa Release
+-------------------------
+
+These are the instructions for making a new Mesa release.
+
+Be sure to do a "cvs update -d ." in the Mesa directory to
+get all the latest files.
+
+Update the version strings in src/get.c, src-glu/glu.c, and
+src/X/fakeglx.c to return the new Mesa version number.
+
+Edit the docs/RELNOTES file to document what's new in the release.
+Edit the docs/VERSIONS file too.
+Update the docs/IAFA-PACKAGE file.
+
+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)".
+Remove the leading `dnl' from the line "dnl AM_MAINTAINER_MODE".
+For both LIBGL_VERSION and LIBGLU_VERSION (libGL and libGLU version) do:
+* If the library source code has changed at all since the last
+ update, then increment REVISION (`C:R:A' becomes `C:R+1:A').
+* If any interfaces have been added, removed, or changed since the
+ last update, increment CURRENT, and set REVISION to 0.
+* If any interfaces have been added since the last public release,
+ then increment AGE.
+* If any interfaces have been removed since the last public release,
+ then set AGE to 0.
+
+Run "fixam -f" to disable automatic dependency tracking.
+Run the bootstrap script to generate the configure script.
+(Requires autoconf 2.13 and automake 1.4, available from ftp.gnu.org)
+
+Edit Make-config and change the MESA_MAJOR and/or MESA_MINOR versions.
+
+Edit Makefile.X11 and verify DIRECTORY is set correctly. The Mesa
+sources must be in that directory (or there must be a symbolic link).
+
+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.
+
+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.
+
+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.
+
+Make the distribution files. From inside the Mesa directory:
+ make -f Makefile.X11 lib_tar
+ make -f Makefile.X11 demo_tar
+ make -f Makefile.X11 lib_zip
+ make -f Makefile.X11 demo_zip
+
+Copy the distribution files to a temporary directory, unpack them,
+compile everything, and run some demos to be sure everything works.
+
+Upload the *.tar.gz and *.zip files to ftp.mesa3d.org
+
+Update the web site. CJ Beyer (cj@styx.phy.vanderbilt.edu) can
+help with this and uploading to the ftp site.
+
+Make the announcement to mesa-dev@mesa3d.org, mesa@iqm.unicamp.br,
+mesa-announce@iqm.unicamp.br and other sites.
+
+
+----------------------------------------------------------------------
+$Id: DEVINFO,v 1.1.1.1 2000/11/30 17:31:37 dawes Exp $
diff --git a/xc/extras/Mesa/docs/IAFA-PACKAGE b/xc/extras/Mesa/docs/IAFA-PACKAGE
new file mode 100644
index 000000000..3e30cca76
--- /dev/null
+++ b/xc/extras/Mesa/docs/IAFA-PACKAGE
@@ -0,0 +1,9 @@
+Title: The Mesa 3-D graphics library
+Version: 3.4
+Description: A 3-D graphics library which uses the OpenGL API.
+Author: Brian Paul brianp@mesa3d.org
+Maintained-by: Brian Paul brianp@mesa3d.org
+Maintained-at: www.mesa3d.org
+Platforms: Almost anything with an ANSI C compiler.
+Copying-Policy: Freely Redistributable
+Keywords: Mesa, OpenGL, 3-D graphics library
diff --git a/xc/extras/Mesa/docs/INSTALL b/xc/extras/Mesa/docs/INSTALL
new file mode 100644
index 000000000..bf6984eb6
--- /dev/null
+++ b/xc/extras/Mesa/docs/INSTALL
@@ -0,0 +1,236 @@
+
+ Mesa compilation and installation instructions
+
+
+Mesa now uses GNU autoconfig for compilation and installation.
+Previous (before version 3.1), traditional Makefiles were used to
+compile Mesa.
+
+You now have the choice of how you want to build Mesa:
+
+ NEW-STYLE: Basically, type "./configure" followed by "make"
+ This should work on most Unix-like operating systems.
+ For more details, see the NEW-STYLE section below.
+
+ OLD-STYLE: Simply type "make" and you'll see a list of supported
+ system configurations. Pick one and type "make <config>"
+ For more details, see the OLD-STYLE section below.
+
+
+
+===============================================================================
+NEW-STYLE Mesa compilation and installation instructions begin here
+-------------------------------------------------------------------------------
+
+0) If you've downloaded Mesa via CVS there will not be a "configure"
+ script. You'll have to run the "bootstrap" script first. This script
+ may not work on any OS other than Linux.
+
+1) Run the configure script
+
+ ./configure [options]
+
+For Linux, it is recommended that you use:
+ ./configure --prefix=/usr
+So that the headers and libs are located according to the Linux/OpenGL
+standard spec at http://oss.sgi.com/projects/ogl-sample/ABI/
+
+Possible options are:
+
+--prefix=DIR
+ The toplevel directory of the hierachy in which Mesa
+ will be installed (DIR/include,DIR/lib etc.).
+ The default is "/usr/local".
+
+--sysconfdir=DIR
+ The directory where Mesa configuration files
+ will be stored. The default is "$prefix/etc".
+ You may want to overwrite the default with --sysconfdir=/etc.
+
+--enable-static
+ Enable building of static libraries.
+ Static libraries are NOT built by default.
+
+--disable-shared
+ Disable building of shared libraries.
+ Shared libraries are built by default.
+
+--with-pic
+--without-pic
+ In normal operation, libtool will build shared libraries from
+ PIC objects and static archives from non-PIC objects, except where one
+ or the other is not provided by the target host. By specifying
+ --with-pic you are asking libtool to build static archives from
+ PIC objects, and similarly by specifying --without-pic you are asking
+ libtool to build shared libraries from non-PIC objects.
+ libtool will only honour this flag where it will produce a
+ working library, otherwise it reverts to the default.
+
+--enable-debug
+ Enable debugging messages (disabled by default).
+
+--enable-profile
+ Enable profiling (disabled by default).
+
+--disable-optimize
+ Disable extra optimizations (enabled by default,
+ i.e., optimize for maximum performance).
+
+--enable-warn
+ Enable extended compiler warnings (disabled by default).
+
+--enable-x86[=ARG]
+--disable-x86
+ Enable/disable x86 assembler support to speed up Mesa
+ (autodetected by default). You may set `on' or `off'.
+
+--enable-3dnow[=ARG]
+--disable-3dnow
+ Enable/disable 3Dnow support to speed up Mesa
+ (autodetected by default). You may set `on' or `off'.
+
+--enable-mmx[=ARG]
+--disable-mmx
+ Enable/disable MMX support to speed up Mesa
+ (autodetected by default). You may set `on' or `off'.
+
+--enable-sse[=ARG]
+--disable-sse
+ Enable/disable SSE support to speed up Mesa
+ (autodetected by default). You may set `on' or `off'.
+ If you have a PentiumIII and want to use SSE make sure you have the
+ PIII Linux kernel-patch installed or things will fail!
+ You can get the patch from http://www.redhat.com/~dledford/linux_kernel.html
+
+--with-glide[=DIR]
+--without-glide
+ Enable/disable support for Glide (autodetected by default).
+ DIR is the installation directory of Glide.
+ If Glide cannot be found, the driver won't be built.
+
+--with-glut[=DIR]
+--without-glut
+ Don't/use already-installed GLUT (autodetected by default).
+ DIR is the installation directory of Glut.
+ If GLUT cannot be found, the version shipped with Mesa will be built.
+
+--with-ggi[=DIR]
+--without-ggi
+ Enable/disable support for GGI (autodetected by default).
+ DIR is the installation directory of GGI.
+ If GGI cannot be found, the driver won't be built.
+
+--disable-ggi-fbdev
+ Don't build the GGI fbdev target (autodetected by default).
+
+--disable-ggi-genkgi
+ Don't build the GGI generic KGI driver (autodetected by default).
+
+--disable-ggi-savage4
+ Don't build the GGI Savage4 KGI driver (autodetected by default).
+
+--disable-osmesa
+ Disable OSmesa (offscreen rendering) support (enabled by default).
+
+--with-svga[=DIR]
+--without-svga
+ Enable/disable support for SVGALib (autodetected by default).
+ DIR is the installation directory of SVGALib.
+ If SVGALib cannot be found, the driver won't be built.
+
+--x-includes=DIR
+ Search for the X include files in DIR.
+
+--x-libraries=DIR
+ Search for the X library files in DIR.
+
+User specific compiler options can be set using the shell variable
+CFLAGS. For instance,
+ CFLAGS="-g -O2" ./configure
+(on some systems: env CFLAGS="-g -O2" ./configure)
+sets the compiler flags to "-g -O2".
+
+For more options run "./configure --help" and read INSTALL.GNU.
+
+
+2) To build the Mesa libraries run:
+
+ make
+
+Optionally, you can strip the libraries using
+
+ make strip
+
+Now make sure that you have the permissions to install Mesa in the
+specified directories, for example, by becoming super user ("su")
+Then run:
+
+ make install
+
+Mesa is now installed.
+Please don't move the installed files but rerun all installation
+steps if you want to use other directories.
+
+
+3) To test whether Mesa works properly you might want to run the Mesa demos:
+
+ make check
+
+Builds all demos.
+
+ make exec
+
+Builds and executes all demos.
+
+
+
+
+
+
+===============================================================================
+OLD-STYLE Mesa compilation and installation instructions begin here
+-------------------------------------------------------------------------------
+
+To build Mesa on most Unix-like operations systems, start by typing
+"make" alone. You'll see a list of supported system configurations.
+Choose one, call it <config>, type "make <config>".
+
+For system-specific information check out these files in the docs/
+directory:
+
+ System README file
+ ----------------- ------------
+ Unix/X11 README.X11
+ Windows 95/N% README.WIN32
+ DOS README.DOS
+ Linux/Windows w/ 3Dfx hardware README.3DFX
+ Linux with GGI README.GGI
+ Linux with threading README.MITS
+ Amigas with Amiwin README.AMIWIN
+ BeOS README.BEOS
+ LynxOS README.LYNXOS
+ SciTech MGL README.MGL
+ IBM OS/2 README.OS2
+ Windows w/ S3 Virge hardware README.VIRGE
+ VMS README.VMS
+ Allegro DJGPP README.DJA
+ Direct3D driver README.D3D
+
+
+Header and library files:
+ After you've compiled Mesa and tried the demos I recommend the following
+ procedure for "installing" Mesa on Unix systems. This is in compliance
+ with the Linux/OpenGL standard base specification.
+ See http://oss.sgi.com/projects/ogl-sample/ABI/
+
+ Copy the Mesa include/GL directory to /usr/local/include:
+ cp -r include/GL /usr/include
+
+ Copy the Mesa library files to /usr/local/lib:
+ cp lib/* /usr/lib
+
+ (actually, use "cp -d" on Linux to preserve symbolic links)
+
+
+===============================================================================
+$Id: INSTALL,v 1.1.1.1 2000/11/30 17:31:37 dawes Exp $
diff --git a/xc/extras/Mesa/docs/INSTALL.GNU b/xc/extras/Mesa/docs/INSTALL.GNU
new file mode 100644
index 000000000..b42a17ac4
--- /dev/null
+++ b/xc/extras/Mesa/docs/INSTALL.GNU
@@ -0,0 +1,182 @@
+Basic Installation
+==================
+
+ These are generic installation instructions.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, a file
+`config.cache' that saves the results of its tests to speed up
+reconfiguring, and a file `config.log' containing compiler output
+(useful mainly for debugging `configure').
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If at some point `config.cache'
+contains results you don't want to keep, you may remove or edit it.
+
+ The file `configure.in' is used to create `configure' by a program
+called `autoconf'. You only need `configure.in' if you want to change
+it or regenerate `configure' using a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system. If you're
+ using `csh' on an old version of System V, you might need to type
+ `sh ./configure' instead to prevent `csh' from trying to execute
+ `configure' itself.
+
+ Running `configure' takes awhile. While running, it prints some
+ messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation.
+
+ 5. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'. To also remove the
+ files that `configure' created (so you can compile the package for
+ a different kind of computer), type `make distclean'. There is
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+Compilers and Options
+=====================
+
+ Some systems require unusual options for compilation or linking that
+the `configure' script does not know about. You can give `configure'
+initial values for variables by setting them in the environment. Using
+a Bourne-compatible shell, you can do that on the command line like
+this:
+ CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
+
+Or on systems that have the `env' program, you can do it like this:
+ env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
+
+Compiling For Multiple Architectures
+====================================
+
+ You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+ If you have to use a `make' that does not supports the `VPATH'
+variable, you have to compile the package for one architecture at a time
+in the source code directory. After you have installed the package for
+one architecture, use `make distclean' before reconfiguring for another
+architecture.
+
+Installation Names
+==================
+
+ By default, `make install' will install the package's files in
+`/usr/local/bin', `/usr/local/man', etc. You can specify an
+installation prefix other than `/usr/local' by giving `configure' the
+option `--prefix=PATH'.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+give `configure' the option `--exec-prefix=PATH', the package will use
+PATH as the prefix for installing programs and libraries.
+Documentation and other data files will still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like `--bindir=PATH' to specify different values for particular
+kinds of files. Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+ Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+ There may be some features `configure' can not figure out
+automatically, but needs to determine by the type of host the package
+will run on. Usually `configure' can figure that out, but if it prints
+a message saying it can not guess the host type, give it the
+`--host=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name with three fields:
+ CPU-COMPANY-SYSTEM
+
+See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the host type.
+
+ If you are building compiler tools for cross-compiling, you can also
+use the `--target=TYPE' option to select the type of system they will
+produce code for and the `--build=TYPE' option to select the type of
+system on which you are compiling the package.
+
+Sharing Defaults
+================
+
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Operation Controls
+==================
+
+ `configure' recognizes the following options to control how it
+operates.
+
+`--cache-file=FILE'
+ Use and save the results of the tests in FILE instead of
+ `./config.cache'. Set FILE to `/dev/null' to disable caching, for
+ debugging `configure'.
+
+`--help'
+ Print a summary of the options to `configure', and exit.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to `/dev/null' (any error
+ messages will still be shown).
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`--version'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`configure' also accepts some other, not widely useful, options.
diff --git a/xc/extras/Mesa/docs/MESA_copy_sub_buffer.spec b/xc/extras/Mesa/docs/MESA_copy_sub_buffer.spec
new file mode 100644
index 000000000..ad6b00c05
--- /dev/null
+++ b/xc/extras/Mesa/docs/MESA_copy_sub_buffer.spec
@@ -0,0 +1,88 @@
+Name
+
+ MESA_copy_sub_buffer
+
+Name Strings
+
+ GLX_MESA_copy_sub_buffer
+
+Contact
+
+ Brian Paul (brian 'at' mesa3d.org)
+
+Status
+
+ Shipping since Mesa 2.6 in February, 1998.
+
+Version
+
+ Last Modified Date: 8 June 2000
+
+Number
+
+ 215
+
+Dependencies
+
+ OpenGL 1.0 or later is required.
+ GLX 1.0 or later is required.
+
+Overview
+
+ The glxCopySubBufferMESA() function copies a rectangular region
+ of the back color buffer to the front color buffer. This can be
+ used to quickly repaint 3D windows in response to expose events
+ when the back color buffer cannot be damaged by other windows.
+
+IP Status
+
+ Open-source; freely implementable.
+
+Issues
+
+ None.
+
+New Procedures and Functions
+
+ void glXCopySubBufferMESA( Display *dpy, GLXDrawable drawable,
+ int x, int y, int width, int height );
+
+New Tokens
+
+ None.
+
+Additions to Chapter 3 of the GLX 1.3 Specification (Functions and Errors)
+
+ Add to section 3.3.10 Double Buffering:
+
+ The function
+
+ void glXCopySubBufferMESA( Display *dpy, GLXDrawable drawable,
+ int x, int y, int width, int height );
+
+ may be used to copy a rectangular region of the back color buffer to
+ the front color buffer. This can be used to quickly repaint 3D windows
+ in response to expose events when the back color buffer cannot be
+ damaged by other windows.
+
+ <x> and <y> indicates the lower-left corner of the region to copy and
+ <width> and <height> indicate the size in pixels. Coordinate (0,0)
+ corresponds to the lower-left pixel of the window, like glReadPixels.
+
+GLX Protocol
+
+ None at this time. The extension is implemented in terms of ordinary
+ Xlib protocol inside of Mesa.
+
+Errors
+
+ None.
+
+New State
+
+ None.
+
+Revision History
+
+ 8 June 2000 - initial specification
+
diff --git a/xc/extras/Mesa/docs/MESA_pixmap_colormap.spec b/xc/extras/Mesa/docs/MESA_pixmap_colormap.spec
new file mode 100644
index 000000000..56a2c7c82
--- /dev/null
+++ b/xc/extras/Mesa/docs/MESA_pixmap_colormap.spec
@@ -0,0 +1,90 @@
+Name
+
+ MESA_pixmap_colormap
+
+Name Strings
+
+ GLX_MESA_pixmap_colormap
+
+Contact
+
+ Brian Paul (brian 'at' mesa3d.org)
+
+Status
+
+ Shipping since Mesa 1.2.8 in May, 1996.
+
+Version
+
+ Last Modified Date: 8 June 2000
+
+Number
+
+ 216
+
+Dependencies
+
+ OpenGL 1.0 or later is required.
+ GLX 1.0 or later is required.
+
+Overview
+
+ Since Mesa allows RGB rendering into drawables with PseudoColor,
+ StaticColor, GrayScale and StaticGray visuals, Mesa needs a colormap
+ in order to compute pixel values during rendering.
+
+ The colormap associated with a window can be queried with normal
+ Xlib functions but there is no colormap associated with pixmaps.
+
+ The glXCreateGLXPixmapMESA function is an alternative to glXCreateGLXPixmap
+ which allows specification of a colormap.
+
+IP Status
+
+ Open-source; freely implementable.
+
+Issues
+
+ None.
+
+New Procedures and Functions
+
+ GLXPixmap glXCreateGLXPixmapMESA( Display *dpy, XVisualInfo *visual,
+ Pixmap pixmap, Colormap cmap );
+
+New Tokens
+
+ None.
+
+Additions to Chapter 3 of the GLX 1.3 Specification (Functions and Errors)
+
+ Add to section 3.4.2 Off Screen Rendering
+
+ The Mesa implementation of GLX allows RGB rendering into X windows and
+ pixmaps of any visual class, not just TrueColor or DirectColor. In order
+ to compute pixel values from RGB values Mesa requires a colormap.
+
+ The function
+
+ GLXPixmap glXCreateGLXPixmapMESA( Display *dpy, XVisualInfo *visual,
+ Pixmap pixmap, Colormap cmap );
+
+ allows one to create a GLXPixmap with a specific colormap. The image
+ rendered into the pixmap may then be copied to a window (which uses the
+ same colormap and visual) with the expected results.
+
+GLX Protocol
+
+ None since this is a client-side extension.
+
+Errors
+
+ None.
+
+New State
+
+ None.
+
+Revision History
+
+ 8 June 2000 - initial specification
diff --git a/xc/extras/Mesa/docs/MESA_release_buffers.spec b/xc/extras/Mesa/docs/MESA_release_buffers.spec
new file mode 100644
index 000000000..34de0146c
--- /dev/null
+++ b/xc/extras/Mesa/docs/MESA_release_buffers.spec
@@ -0,0 +1,85 @@
+Name
+
+ MESA_release_buffers
+
+Name Strings
+
+ GLX_MESA_release_buffers
+
+Contact
+
+ Brian Paul (brian 'at' mesa3d.org)
+
+Status
+
+ Shipping since Mesa 2.0 in October, 1996.
+
+Version
+
+ Last Modified Date: 8 June 2000
+
+Number
+
+ 217
+
+Dependencies
+
+ OpenGL 1.0 or later is required.
+ GLX 1.0 or later is required.
+
+Overview
+
+ Mesa's implementation of GLX is entirely implemented on the client side.
+ Therefore, Mesa cannot immediately detect when an X window or pixmap is
+ destroyed in order to free any ancilliary data associated with the window
+ or pixmap.
+
+ The glxMesaReleaseBuffers() function can be used to explicitly indicate
+ when the back color buffer, depth buffer, stencil buffer, and/or accum-
+ ulation buffer associated with a drawable can be freed.
+
+IP Status
+
+ Open-source; freely implementable.
+
+Issues
+
+ None.
+
+New Procedures and Functions
+
+ Bool glXReleaseBuffersMESA( Display *dpy, GLXDrawable d );
+
+New Tokens
+
+ None.
+
+Additions to Chapter 3 of the GLX 1.3 Specification (Functions and Errors)
+
+ The function
+
+ Bool glXReleaseBuffersMESA( Display *dpy, GLXDrawable d );
+
+ causes all software ancilliary buffers (back buffer, depth, stencil,
+ accum, etc) associated with the named drawable to be immediately
+ deallocated. True is returned if <d> is a valid Mesa GLX drawable,
+ else False is returned. After calling glXReleaseBuffersMESA, the
+ drawable should no longer be used for GL rendering. Results of
+ attempting to do so are undefined.
+
+
+GLX Protocol
+
+ None, since this is a client-side operation.
+
+Errors
+
+ None.
+
+New State
+
+ None.
+
+Revision History
+
+ 8 June 2000 - initial specification
diff --git a/xc/extras/Mesa/docs/MESA_resize_buffers.spec b/xc/extras/Mesa/docs/MESA_resize_buffers.spec
new file mode 100644
index 000000000..6225ba652
--- /dev/null
+++ b/xc/extras/Mesa/docs/MESA_resize_buffers.spec
@@ -0,0 +1,82 @@
+Name
+
+ MESA_resize_buffers
+
+Name Strings
+
+ GL_MESA_resize_buffers
+
+Contact
+
+ Brian Paul, brianp 'at' mesa3d.org
+
+Status
+
+ Shipping (since Mesa version 2.2)
+
+Version
+
+ $Id: MESA_resize_buffers.spec,v 1.1.1.1 2000/11/30 17:31:36 dawes Exp $
+
+Number
+
+ 196
+
+Dependencies
+
+ Mesa 2.2 or later is required.
+
+Overview
+
+ Mesa is often used as a client library with no integration with
+ the computer's window system (an X server, for example). And since
+ Mesa does not have an event loop nor window system callbacks, it
+ cannot properly respond to window system events. In particular,
+ Mesa cannot automatically detect when a window has been resized.
+
+ Mesa's glViewport command queries the current window size and updates
+ its internal data structors accordingly. This normally works fine
+ since most applications call glViewport in responce to window size
+ changes.
+
+ In some situations, however, the application may not call glViewport
+ when a window size changes but would still like Mesa to adjust to
+ the new window size. This extension exports a new function to solve
+ this problem.
+
+New Procedures and Functions
+
+ void glResizeBuffersMESA( void )
+
+New Tokens
+
+ none
+
+Additions to the OpenGL Specification (no particular section)
+
+ The glResizeBuffersMESA command may be called when the client
+ determines that a window has been resized. Calling
+ glResizeBuffersMESA causes Mesa to query the current window size
+ and adjust its internal data structures. This may include
+ reallocating depth, stencil, alpha and accumulation buffers.
+
+Additions to the AGL/GLX/WGL Specifications
+
+ None
+
+Errors
+
+ INVALID_OPERATION is generated if ResizeBuffersMESA is called betweeen
+ Begin and End.
+
+New State
+
+ None.
+
+New Implementation Dependent State
+
+ None.
+
+Revision History
+
+ * Revision 1.0 - Initial specification
diff --git a/xc/extras/Mesa/docs/MESA_set_3dfx_mode.spec b/xc/extras/Mesa/docs/MESA_set_3dfx_mode.spec
new file mode 100644
index 000000000..baea030c1
--- /dev/null
+++ b/xc/extras/Mesa/docs/MESA_set_3dfx_mode.spec
@@ -0,0 +1,85 @@
+Name
+
+ MESA_set_3dfx_mode
+
+Name Strings
+
+ GLX_MESA_set_3dfx_mode
+
+Contact
+
+ Brian Paul (brian 'at' mesa3d.org)
+
+Status
+
+ Shipping since Mesa 2.6 in February, 1998.
+
+Version
+
+ Last Modified Date: 8 June 2000
+
+Number
+
+ 218
+
+Dependencies
+
+ OpenGL 1.0 or later is required.
+ GLX 1.0 or later is required.
+
+Overview
+
+ The Mesa Glide driver allows full-screen rendering or rendering into
+ an X window. The glXSet3DfxModeMESA() function allows an application
+ to switch between full-screen and windowed rendering.
+
+IP Status
+
+ Open-source; freely implementable.
+
+Issues
+
+ None.
+
+New Procedures and Functions
+
+ GLboolean glXSet3DfxModeMESA( GLint mode );
+
+New Tokens
+
+ GLX_3DFX_WINDOW_MODE_MESA 0x1
+ GLX_3DFX_FULLSCREEN_MODE_MESA 0x2
+
+Additions to Chapter 3 of the GLX 1.3 Specification (Functions and Errors)
+
+ The Mesa Glide device driver allows either rendering in full-screen
+ mode or rendering into an X window. An application can switch between
+ full-screen and window rendering with the command:
+
+ GLboolean glXSet3DfxModeMESA( GLint mode );
+
+ <mode> may either be GLX_3DFX_WINDOW_MODE_MESA to indicate window
+ rendering or GLX_3DFX_FULLSCREEN_MODE_MESA to indicate full-screen mode.
+
+ GL_TRUE is returned if <mode> is valid and the operation completed
+ normally. GL_FALSE is returned if <mode> is invalid or if the Glide
+ driver is not being used.
+
+ Note that only one drawable and context can be created at any given
+ time with the Mesa Glide driver.
+
+GLX Protocol
+
+ None since this is a client-side extension.
+
+Errors
+
+ None.
+
+New State
+
+ None.
+
+Revision History
+
+ 8 June 2000 - initial specification
diff --git a/xc/extras/Mesa/docs/MESA_window_pos.spec b/xc/extras/Mesa/docs/MESA_window_pos.spec
new file mode 100644
index 000000000..da95d9287
--- /dev/null
+++ b/xc/extras/Mesa/docs/MESA_window_pos.spec
@@ -0,0 +1,127 @@
+Name
+
+ MESA_window_pos
+
+Name Strings
+
+ GL_MESA_window_pos
+
+Contact
+
+ Brian Paul, brianp 'at' mesa3d.org
+
+Status
+
+ Shipping (since Mesa version 1.2.8)
+
+Version
+
+ $Id: MESA_window_pos.spec,v 1.1.1.1 2000/11/30 17:31:36 dawes Exp $
+
+Number
+
+ 197
+
+Dependencies
+
+ OpenGL 1.0 is required.
+ The extension is written against the OpenGL 1.2 Specification
+
+Overview
+
+ In order to set the current raster position to a specific window
+ coordinate with the RasterPos command, the modelview matrix, projection
+ matrix and viewport must be set very carefully. Furthermore, if the
+ desired window coordinate is outside of the window's bounds one must
+ rely on a subtle side-effect of the Bitmap command in order to circumvent
+ frustum clipping.
+
+ This extension provides a set of functions to directly set the
+ current raster position, bypassing the modelview matrix, the
+ projection matrix and the viewport to window mapping. Furthermore,
+ clip testing is not performed.
+
+ This greatly simplifies the process of setting the current raster
+ position to a specific window coordinate prior to calling DrawPixels,
+ CopyPixels or Bitmap.
+
+New Procedures and Functions
+
+ void WindowPos2dMESA(double x, double y)
+ void WindowPos2fMESA(float x, float y)
+ void WindowPos2iMESA(int x, int y)
+ void WindowPos2sMESA(short x, short y)
+ void WindowPos2ivMESA(const int *p)
+ void WindowPos2svMESA(const short *p)
+ void WindowPos2fvMESA(const float *p)
+ void WindowPos2dvMESA(const double *p)
+ void WindowPos3iMESA(int x, int y, int z)
+ void WindowPos3sMESA(short x, short y, short z)
+ void WindowPos3fMESA(float x, float y, float z)
+ void WindowPos3dMESA(double x, double y, double z)
+ void WindowPos3ivMESA(const int *p)
+ void WindowPos3svMESA(const short *p)
+ void WindowPos3fvMESA(const float *p)
+ void WindowPos3dvMESA(const double *p)
+ void WindowPos4iMESA(int x, int y, int z, int w)
+ void WindowPos4sMESA(short x, short y, short z, short w)
+ void WindowPos4fMESA(float x, float y, float z, float w)
+ void WindowPos4dMESA(double x, double y, double z, double )
+ void WindowPos4ivMESA(const int *p)
+ void WindowPos4svMESA(const short *p)
+ void WindowPos4fvMESA(const float *p)
+ void WindowPos4dvMESA(const double *p)
+
+New Tokens
+
+ none
+
+Additions to Chapter 2 of the OpenGL 1.2 Specification (OpenGL Operation)
+
+ - (2.12, p. 41) Insert after third paragraph:
+
+ Alternately, the current raster position may be set by one of the
+ WindowPosMESA commands:
+
+ void WindowPos{234}{sidf}MESA( T coords );
+ void WindowPos{234}{sidf}vMESA( T coords );
+
+ WindosPos4MESA takes four values indicating x, y, z, and w.
+ WindowPos3MESA (or WindowPos2MESA) is analaguos, but sets only
+ x, y, and z with w implicitly set to 1 (or only x and y with z
+ implicititly set to 0 and w implicitly set to 1).
+
+ WindowPosMESA operates like RasterPos except that the current modelview
+ matrix, projection matrix and viewport parameters are ignored and the
+ clip test operation always passes. The current raster position values
+ are directly set to the parameters passed to WindowPosMESA. The current
+ color, color index and texture coordinate update the current raster
+ position's associated data.
+
+Additions to the AGL/GLX/WGL Specifications
+
+ None
+
+GLX Protocol
+
+ Not specified at this time. However, a protocol message very similar
+ to that of RasterPos is expected.
+
+Errors
+
+ INVALID_OPERATION is generated if WindowPosMESA is called betweeen
+ Begin and End.
+
+New State
+
+ None.
+
+New Implementation Dependent State
+
+ None.
+
+Revision History
+
+ * Revision 1.0 - Initial specification
+ * Revision 1.1 - Minor clean-up (7 Jan 2000, Brian Paul)
+
diff --git a/xc/extras/Mesa/docs/README b/xc/extras/Mesa/docs/README
new file mode 100644
index 000000000..38172e0db
--- /dev/null
+++ b/xc/extras/Mesa/docs/README
@@ -0,0 +1,513 @@
+
+ Mesa 3.4
+ (stable release version)
+
+ Copyright (C) 1995-2000 Brian Paul
+
+ www.mesa3d.org
+
+
+Disclaimer
+==========
+
+Mesa is a 3-D graphics library with an API which is very similar to that
+of OpenGL*. To the extent that Mesa utilizes the OpenGL command syntax
+or state machine, it is being used with authorization from Silicon Graphics,
+Inc. However, the author makes no claim that Mesa is in any way a
+compatible replacement for OpenGL or associated with Silicon Graphics, Inc.
+Those who want a licensed implementation of OpenGL should contact a licensed
+vendor.
+
+While Mesa is not a licensed OpenGL implementation, it is currently
+being tested with the OpenGL conformance tests. For the current
+conformance status see the CONFORM file included in the Mesa distribution.
+
+* OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
+
+
+
+Author
+======
+
+Brian Paul
+brian@mesa3d.org
+
+
+
+Copyright Information
+=====================
+
+See the docs/COPYRIGHT file.
+
+
+
+Introduction
+============
+
+While Mesa uses the OpenGL API and mimics its semantics, it is
+important to understand that Mesa is not a real implementation of OpenGL
+since it is not licensed. That said, Mesa is still a viable alternative
+to OpenGL. Most OpenGL applications should run with Mesa without code
+changes.
+
+The first six years of Mesa development were done during my spare time
+from August 1993 to August 1999. Now, much of the Mesa development
+work is done during my working hours with Precision Insight, Inc.
+
+The core library was originally written on an Amiga using the DCC compiler.
+Later, development was moved to an SGI workstation. Current development
+is done on PC/Linux systems.
+
+Mesa works on most Unix workstations with ANSI C and X11. There are also
+drivers for Amiga, Microsoft Windows, Macintosh, MS DOS, NeXT, BeOS and
+other systems. Unix/X11 is still the best-supported platform.
+
+Since the OpenGL API is used, OpenGL documentation can serve as the
+documentation for Mesa's core functions. Visit http://www.opengl.org/
+for extensive OpenGL information.
+
+The primary design goal of this library has been correctness. Performance
+has been a secondary (but still very important!) priority. At this point,
+most common rendering operations have been optimized a great deal.
+However, if you find an obscure code path that isn't as fast as you
+think it could be (like glDrawPixels with lookup tables and a crazy
+blend mode) send a note to the author; it might not be hard to improve
+the path. Better yet, try optimizing that path yourself and send a patch.
+
+
+
+Getting the software
+====================
+
+Mesa can be downloaded from
+http://sourceforge.net/project/filelist.php?group_id=3 or from
+http://www.mesa3d.org/
+
+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.
+
+Mesa is available in at least three archive formats:
+
+1. GNU zip/tar
+
+ Download MesaLib-3.4.tar.gz and optionally MesaDemos-3.4.tar.gz
+ Unpack with:
+ gzcat MesaLib-3.4.tar.gz | tar xf -
+ gzcat MesaDemos-3.4.tar.gz | tar xf -
+ or
+ gunzip MesaLib-3.4.tar.gz ; tar xf MesaLib-3.4.tar
+ gunzip MesaDemos-3.4.tar.gz ; tar xf MesaLib-3.4.tar
+ or
+ tar zxf MesaLib-3.4.tar.gz
+ tar zxf MesaDemos-3.4.tar.gz
+
+ If you don't have gzcat try zcat instead.
+
+2. Unix compressed/tar
+
+ Download MesaLib-3.4.tar.Z and optionally MesaDemos-3.4.tar.Z
+ Unpack with:
+ zcat MesaLib-3.4.tar.Z | tar xf -
+ zcat MesaDemos-3.4.tar.Z | tar xf -
+
+3. ZIP format
+
+ Download MesaLib-3.4.zip and optionally MesaDemos-3.4.zip
+ Unpack with:
+ unzip MesaLib-3.4.zip
+ unzip MesaDemos-3.4.zip
+
+
+Note, there may be other package formats on the Mesa ftp/web site.
+
+
+After unpacking you'll have these files (and more):
+
+docs/README - this file
+docs/README.* - detailed information for specific OS/hardware systems
+docs/COPYRIGHT - copyright info
+docs/VERSIONS - version history
+docs/RELNOTES - release notes for the new version
+docs/CONFORM - results of conformance testing
+Makefile.X11 - "old" top-level Makefile for X11-based systems
+Make-config - "old" system configurations used by the Makefiles
+bin/mklib.* - shell scripts for making shared libraries for some systems
+include/ - client include files
+lib/ - client libraries, created during installation
+src/ - source code for core library
+src-glu/ - source code for utility library
+util/ - handly utility functions
+widgets-mesa/ - Mesa widgets for Xt/Motif
+widgets-sgi/ - SGI OpenGL widgets for Xt/Motif
+
+and if you downloaded and unpacked the demos:
+
+src-glut/ - source code for GLUT toolkit
+demos/ - GLUT demos
+xdemos/ - X11 and SVGA demo programs
+samples/ - sample OpenGL programs from SGI
+book/ - example programs from the OpenGL Programming Guide,
+ converted to GLUT by Mark Kilgard, from GLUT distribution.
+images/ - image files
+3Dfx/ - 3Dfx demos and tests
+mtdemos/ - multi-threading demos
+
+
+
+GLUT
+====
+
+Mesa 2.5 and later includes Mark Kilgard's GLUT library (GL Utility Toolkit).
+GLUT is built automatically on systems which support it.
+
+The GLUT tests, demos, examples, etc are not included, just the main library.
+To obtain the latest complete release of GLUT please visit
+http://reality.sgi.com/employees/mjk_asd/glut3/glut3.html
+
+
+
+Compiling and Installation
+==========================
+
+See the INSTALL file for instructions.
+
+
+
+Using the Library
+=================
+
+Performance tips for software rendering:
+ 1. Turn off smooth shading when you don't need it (glShadeModel)
+ 2. Turn off depth buffering when you don't need it.
+ 3. Turn off dithering when not needed.
+ 4. Use double buffering as it's often faster than single buffering
+ 5. 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.
+ 6. Recompile Mesa with more optimization if possible.
+ 7. Try to maximize the amount of drawing done between glBegin/glEnd pairs.
+ 8. Use the MESA_BACK_BUFFER variable to find best performance in double
+ buffered mode. (X users only)
+ 9. 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)
+ 10. 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)
+ 11. 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
+ 12. 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
+ 13. 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
+ 14. 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.
+
+
+Debugging:
+ Normally Mesa records but does not notify the user of errors. It is up
+ to the application to call glGetError 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.
+
+ 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.
+
+ In your debugger you can set a breakpoint in gl_error() to trap Mesa
+ errors.
+
+ There is a display list printing/debugging facility. See the end of
+ src/dlist.c for details.
+
+
+Fortran bindings:
+ Fortan bindings are no longer included with Mesa. William F. Mitchell
+ (william.mitchell@nist.gov) has developed a new set of Mesa/OpenGL and
+ GLUT bindings for Fortran. See http://math.nist.gov/f90gl for more
+ information.
+
+
+Off-screen rendering:
+ 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 new feature effectively enables you to
+ use Mesa as an off-line, batch-oriented renderer.
+
+ 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.
+
+ 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.
+
+
+Profiling (may no longer work in Mesa 3.1 or later, sorry):
+ Mesa 1.2.6 introduced a simple profiling facility. It counts and
+ measures the time spent in a number of important rendering operations
+ and prints the information in a report before your program exits.
+
+ By default, profiling is disabled. To enable it, add -DPROFILE to
+ the appropriate CFLAGS entry in the Make-config file, then recompile
+ Mesa. In general, you should only enable profiling during program
+ development to gain insight into Mesa's performance. Mesa runs a bit
+ slower when profiling is enabled because it requires frequent polling
+ of the system clock.
+
+ The profiling report will be printed when glXDestroyContext is called
+ _if_ the MESA_PROFILE environment variable is set. You must be sure
+ glXDestroyContext is called before exiting to get the profile report.
+ The report will be printed to stdout and includes:
+
+ glBegin/glEnd - number of glBegin/glEnd pairs called, total time,
+ and rate in pairs/second.
+ vertexes transformed - number of vertices transformed, lit, clip-
+ tested, fogged, and mapped to window coordinates, total time,
+ and rate in vertexes/second.
+ points rasterized - number of points drawn, time, and rate.
+ lines rasterized - number of lines drawn, time, and rate.
+ polygons rasterized - number of polygons drawn, time and rate.
+ overhead - time between glBegin/glEnd not accounted for by vertexes,
+ points, lines, and polygons. This is time spent executing
+ glVertex, glNormal, glColor, etc, clipping, primitive assembly,
+ and user code between glBegin/glEnd.
+ glClear - number of glClears executed, total time and clears/second.
+ SwapBuffers - number of swaps executed, total time and swaps/second.
+
+ Note that the real point, line, and polygon rates should be computed by
+ adding in the vertex transformation and overhead time factors.
+
+
+Extensions:
+ Mesa supports quite a few OpenGL extensions. The set of available
+ extensions depends on the device driver you're using. Run the glinfo
+ program to learn which extensions are available on your computer.
+
+ There are a few Mesa-specific extensions:
+
+ GL_MESA_window_pos
+
+ This extension adds the glWindowPos*MESA() functions. These functions
+ are convenient alternatives to glRasterPos*() because they set the
+ current raster position to a specific window coordinate, bypassing the
+ usual modelview, projection and viewport transformations. This is
+ especially useful for setting the position for glDrawPixels() or
+ glBitmap() to a specific window coordinate.
+
+ See the docs/MESA_window_pos.spec file for details.
+
+ GL_MESA_resize_buffers
+
+ This extension adds the glResizeBuffersMESA() function. When this
+ function is called, Mesa checks if the color buffer (window) has
+ been resized. If it has, Mesa reallocates the ancillary (depth,
+ stencil, accum) buffers.
+
+ Normally, Mesa checks for window size changes whenever glViewport()
+ is called. In some applications it may not be appropriate to call
+ glViewport() when the window is resized. Such applications should
+ call glResizeBuffersMESA() instead so the ancillary buffers are
+ correctly updated.
+
+ See the docs/MESA_resize_buffers.spec file for more details.
+ This extension is new in version 2.2.
+
+
+Runtime Configuration File:
+ See the CONFIG file for information on how to setup a Mesa runtime
+ config file.
+
+
+Version 2.x features:
+ Version 2.x of Mesa implements the OpenGL 1.1 API with the following
+ new features.
+
+ Texture mapping:
+ glAreTexturesResident
+ glBindTexture
+ glCopyTexImage1D
+ glCopyTexImage2D
+ glCopyTexSubImage1D
+ glCopyTexSubImage2D
+ glDeleteTextures
+ glGenTextures
+ glIsTexture
+ glPrioritizeTextures
+ glTexSubImage1D
+ glTexSubImage2D
+
+ Vertex Arrays:
+ glArrayElement
+ glColorPointer
+ glDrawElements
+ glEdgeFlagPointer
+ glIndexPointer
+ glInterleavedArrays
+ glNormalPointer
+ glTexCoordPointer
+ glVertexPointer
+
+ Client state management:
+ glDisableClientState
+ glEnableClientState
+ glPopClientAttrib
+ glPushClientAttrib
+
+ Misc:
+ glGetPointer
+ glIndexub
+ glIndexubv
+ glPolygonOffset
+
+
+Version 3.x features:
+ Version 3.x of Mesa implements the OpenGL 1.2 API with the following
+ new features:
+
+ BGR, BGRA and packed pixel formats
+ New texture border clamp mode
+ glDrawRangeElements()
+ standard 3-D texturing
+ advanced MIPMAP control
+ separate specular color interpolation
+
+
+Summary of environment variables:
+ MESA_DEBUG - if defined, error messages are printed to stderr
+ MESA_NO_DITHER - disable dithering, overriding glEnable(GL_DITHER)
+ MESA_RGB_VISUAL - specifies the X visual and depth for RGB mode (X only)
+ MESA_CI_VISUAL - specifies the X visual and depth for CI mode (X only)
+ MESA_BACK_BUFFER - specifies how to implement the back color buffer (X only)
+ MESA_PRIVATE_CMAP - force aux/tk libraries to use private colormaps (X only)
+ MESA_GAMMA - gamma correction coefficients (X only)
+ MESA_PROFILE - enable reporting of performance measurements
+ MESA_XSYNC - enable synchronous X behavior (for X debugging only)
+
+
+
+Mailing List
+============
+
+Visit the Mesa web site at http://www.mesa3d.org to join the mailing
+lists. There is a user's list and developer's list.
+
+
+
+Reporting Bugs
+==============
+
+If you think you've found a bug in Mesa:
+
+ 1. Check if there's a new version of Mesa to download.
+
+ 2. Check if the bug has already been reported in the Mesa bug
+ database at http://www.mesa3d.org
+
+ 3. If you've found a new bug, submit it to the bug database.
+ Provide as much information as possible! Check back on the
+ bug report from time to time to monitor its status.
+
+ 4. Please provide small test programs when possible.
+
+
+The following people have made contributions to the Mesa project
+and may be able to help with specific problems:
+
+Area Contact
+---------------------- -------------------------------------------
+GLU polygon tessellator Gareth Hugues gareth@precisioninsight
+GLU NURBS Bogdan Sikorski bogdan@cira.it
+Evaluators Bernd Barsuhn bernd@berlin.muc.de
+Xt/Motif widgets Thorsten Ohl ohl@crunch.ikp.physik.th-darmstadt.de
+ and Jeroen van der Zijp jvz@cyberia.cfdrc.com
+Fortran bindings William Mitchell william.mitchell@nist.gov
+Amiga driver Stefan Zivkovic d94sz@efd.lth.se
+Amiwin driver Victor Ng-Thow-Hing victorng@dgp.toronto.edu
+Macintosh driver Miklos Fazekas boga@augusta.elte.hu
+NeXT driver Pascal Thibaudeau pthibaud@frbdx11.cribx1.u-bordeaux.fr
+OS/2 driver Darren Abbott abbott@hiwaay.net
+VMS support Jouk Jansen joukj@crys.chem.uva.nl
+Windows 95/NT driver Theodore A. Jump tjump@spgs.com
+MS-DOS driver Charlie Wallace cwallace@dreamworks.com
+BeOS driver Tinic Uro 5uro@informatik.uni-hamburg.de
+GLX encoder/decoder Steven Parker sparker@taz.cs.utah.edu
+SciTech MGL driver Kendall Bennett KendallB@scitechsoft.com
+Cygnus Win32 support No maintainer. Any volunteers?
+S3 Virge driver rkoduri@s3.com or pcgamedev@s3.com
+Allegro DJGPP driver Bernhard Tschirren bernie-t@geocities.com
+Direct3D driver Leigh McRae leigh@altsoftware.com
+GGI driver Jon Taylor jtaylor@creaf.com
+Mailing list help Pedro Vazquez vazquez@iqm.unicamp.br
+
+None of the people on this list are under any obligation to respond to bug
+reports. However, they have been pretty helpful so far.
+
+
+
+Why is it the library called Mesa?
+==================================
+
+Why not? More obvious names were considered but had to be rejected:
+FreeGL (too similar to the trademarked name OpenGL), Free3D (too similar
+to DEC's Open3D). Also, I'm tired of acronyms.
+
+
+
+Contributors
+============
+
+Many people have contributed to Mesa. I really appreciate the help!
+See the Mesa web site for a list of past and current contributors.
+
+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.
+
+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.
+
+If you're contribution code to the Mesa library itself:
+ 1. Try to write clean code (uniform indentation, comments, meaningful
+ identifiers, etc). It must be readable and maintainable!
+ 2. 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.
+
+
+--------------------------------------------------------------------------
+$Id: README,v 1.1.1.1 2000/11/30 17:31:37 dawes Exp $
diff --git a/xc/extras/Mesa/docs/README.3DFX b/xc/extras/Mesa/docs/README.3DFX
new file mode 100644
index 000000000..ad7cb7850
--- /dev/null
+++ b/xc/extras/Mesa/docs/README.3DFX
@@ -0,0 +1,598 @@
+
+ 3Dfx Glide device driver for Mesa 3.4
+ (see below for FAQ)
+
+
+
+What do you need ?
+------------------
+
+ - A PC with a 3Dfx Voodoo1/2 Graphics or Voodoo Rush based board
+ (Pure3D, Monster 3D, R3D, Obsidian, Stingray 128/3D, etc.).
+ The Quantum3D Obsidian3D-2 X-24 requires some special env. setting
+ under Linux (more information in the "Useful Glide Environment
+ Variables");
+
+ - Mesa 3.1;
+
+ - The 3Dfx Glide library 2.3 or later for your OS (the 2.4 works fine).
+ The Voodoo2 requires the Glide library 2.51. The Glide 3.1 is not
+ compatible with the Glide 2.x so it doesn't work with the current
+ version of the driver;
+
+ - A compiler supported by the Glide library (Micro$oft VC++ (tested),
+ Watcom (tested), GCC for Linux (tested), etc.);
+
+ - A lot of patience, this is an alpha release.
+
+ - It's nice to have two monitors - one for your normal graphics
+ card and one for your 3Dfx card. If something goes wrong with
+ an application using the 3Dfx hardware you can still see your
+ normal screen in order to recover.
+
+
+
+Tested on:
+----------
+ Windows 95 - David Bucciarelli
+ Windows NT - Henri Fousse
+ MS-DOS
+ Linux - Daryll Strauss, Brian Paul, David Bucciarelli
+ FreeBSD
+ BeOS - Duncan Wilcox
+ MacOS - Fazekas Miklos
+
+
+What is able to do ?
+--------------------
+
+ - It is able accelerate points, lines and polygon with flat
+ shading, gouraud shading, Z-buffer, texture mapping, blending, fog and
+ antialiasing (when possible). There is also the support for rendering
+ in a window with a slow trick for the Voodoo Graphics (available only
+ for Linux) and at full speed with the Voodoo Rush chipset.
+ Under Linux is also possible to switch on-the-fly between the fullscreen
+ and in-window rendering hack.
+ There is also the support for using more than one Voodoo Graphics in the
+ some application/PC (you can create one context for each board and use
+ multiple video outputs for driving monitors, videoprojectors or HMDs).
+ The driver is able to fallback to pure software rendering when afeature
+ isn't supported by the Voodoo hardware (however software rendering is
+ very slow compared to hardware supported rendering)
+
+
+
+How to compile:
+---------------
+
+Linux:
+------
+ Here are the basic steps for using the 3Dfx hardware with Mesa
+ on Linux:
+
+ - You'll need the Glide library and headers. Mesa expects:
+ /usr/local/glide/include/*.h // all the Glide headers
+ /usr/local/glide/lib/libglide2x.so
+
+ 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;
+
+ - 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"
+
+ - 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"
+
+ - You'll have to run Glide-based programs as root or set the suid
+ bit on executables;
+
+ - Try a demo:
+ cd gdemos
+ 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:
+------
+ Check the WEB page at http://valerie.inf.elte.hu/~boga/Mesa.html
+
+MS Windows:
+-----------
+
+ For the MSVC++:
+ - The glide2x.lib have to be in the default MSVC++ lib directory;
+
+ - The Glide headers have to be in the default MSVC++ include directory;
+
+ - You must have the vcvars32.bat script in your PATH;
+
+ - Go to the directory Mesa-3.1 and run the mesafx.bat;
+
+ - The script will compile everything (Mesa-3.1/lib/OpenGL32.{lib,dll},
+ Mesa-3.1/lib/GLU32.{lib,dll}, Mesa-3.1/lib/GLUT32.{lib,dll} and
+ Voodoo demos);
+
+ - At the end, you will be in the Mesa-3.1/3Dfx/demos directory;
+
+ - 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
+ the Voodoo screen and the windows desktop);
+
+ - Remember to copy the Mesa OpenGL32.dll, GLU32.dll and GLUT32.dll in the
+ some directory were you run your Mesa based applications.
+
+ - 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).
+
+
+Doing more with Mesa & Linux Glide:
+-----------------------------------
+
+ The MESA_GLX_FX environment variable can be used to coax most
+ GLX-based programs into using Glide (and the __GLUT library
+ is GLX-based__).
+
+ Full-screen 3Dfx rendering:
+ ---------------------------
+
+ 1. Set the MESA_GLX_FX variable to "fullscreen":
+
+ ksh:
+ export MESA_GLX_FX = "fullscreen"
+ csh:
+ setenv MESA_GLX_FX fullscreen
+
+ 2. As root, run a GLX-based program (any GLUT demo on Linux).
+
+ 3. Be careful: once the 3Dfx screen appears you won't be able
+ to see the GLUT windows on your X display. This can make using
+ the mouse tricky! One solution is to hook up your 3Dfx card to
+ a second monitor. If you can do this then set these env vars
+ first:
+
+ setenv SST_VGA_PASS 1
+ setenv SST_NOSHUTDOWN
+
+ or for the Voodoo2:
+
+ setenv SSTV2_VGA_PASS 1
+ setenv SSTV2_NOSHUTDOWN
+
+ Rendering into an X window with the help of the Voodoo hardware:
+ ----------------------------------------------------------------
+
+ 1. Start your X server in 16 bpp mode (XFree86: startx -- -bpp 16)
+ in order to have the best performance and the best visual
+ quality. However you can use any visual depth supported by X.
+
+ 2. Set the following environment variables:
+ export MESA_GLX_FX="window" # to enable window rendering
+ export SST_VGA_PASS=1 # to stop video signal switching
+ export SST_NOSHUTDOWN=1 # to stop video signal switching
+ OR
+ setenv MESA_GLX_FX window
+ setenv SST_VGA_PASS 1
+ setenv SST_NOSHUTDOWN 1
+
+ (the Voodoo2 requires to use "SSTV2_" instead "SST_").
+
+ 3. As root, try running a GLX-based program
+
+ How does it work? We use the 3Dfx hardware to do rendering then
+ copy the image from the 3Dfx frame buffer into an X window when
+ the SwapBuffers() function is called. The problem with this
+ idea is it's slow. The image must be copied from the 3Dfx frame
+ buffer to main memory then copied into the X window (and when the X
+ visual depth doesn't match the Voodoo framebufffer bit per pixel, it
+ is required also a pixel format translation).
+
+ NOTE: the in-window rendering feature only works with double-buffering.
+
+
+ On the fly switching between in window rendering and full screen rendering
+ --------------------------------------------------------------------------
+
+ The Mesa 2.6 has introduced the capability of switching
+ on-the-fly between the fullscreen/fullspeed rendering and the in-window
+ hack and vice versa. The on-the-fly switching requires a direct support
+ by the application but it is really easy to add. You have to start
+ your X server in 16 bpp mode and to add the following lines to your
+ application:
+
+ #if defined(FX) && define(XMESA)
+ #include <GL/xmesa.h>
+
+ static int fullscreen=1;
+ #endif
+
+ ...
+
+ /* In the GLUT keyboard event callback */
+
+ #if defined(FX) && !define(WIN32)
+ case ' ':
+ fullscreen=(!fullscreen);
+ XMesaSetFXmode(fullscreen ? XMESA_FX_FULLSCREEN : XMESA_FX_WINDOW);
+ break;
+ #endif
+ ...
+
+ See the 3Dfx/demos/tunnel.c program
+ for an example. You have to set the -DXMESA flag in the Makefile's COPTS
+ to enable it.
+
+ Rendering into an X window with the X11 software driver:
+ --------------------------------------------------------
+
+ Set the MESA_GLX_FX variable to "disable" your GLX-based program will use
+ the X11 software driver (the 3Dfx hardware isn't used at all).
+
+
+
+Useful Glide Environment Variables:
+-----------------------------------
+
+ - To disable the 3Dfx logo, set the FX_GLIDE_NO_SPLASH variable.
+
+ - To disable video signal switching:
+ setenv SST_VGA_PASS 1
+ setenv SST_NOSHUTDOWN
+ or for the Voodoo2:
+ setenv SSTV2_VGA_PASS 1
+ setenv SSTV2_NOSHUTDOWN
+
+ - To set the default screen refresh rate:
+ setenv SST_SCREENREFRESH=75
+
+ the supported values are 60, 70, 72, 75, 80, 85, 90, 100, 120.
+
+ - To force the Mesa library to swap buffers as fast as possible,
+ without any vertical blanking synchronization (useful for benchmarks):
+ setenv FX_GLIDE_SWAPINTERVAL 0
+ setenv SST_SWAP_EN_WAIT_ON_VIDSYNC 0
+
+ - You can slight improve the performances of your Voodoo1 board with
+ the following env. var.:
+ setenv SST_FASTMEM 1
+ setenv SST_PCIRD 1
+ setenv SST_GRXCLK 57
+
+ (don't use this setting with the Quantum3D 100SB or with any other
+ SLI configuration: it will hang everything !).
+ The following setting can be used with the Voodoo2:
+ setenv SSTV2_FASTMEM_RAS_READS=1
+ setenv SSTV2_FASTPCIRD=1
+ setenv SSTV2_GRXCLK=95
+
+ - The Quantum3D Obsidian3D-2 X-24 requires some special env. setting
+ in order to work under Linux:
+
+ export SSTV2_FT_CLKDEL=5
+ export SSTV2_TF0_CLKDEL=7
+ export SSTV2_TF1_CLKDEL=7
+ export SSTV2_TF2_CLKDEL=7
+ export SSTV2_SLIM_VIN_CLKDEL=3
+ export SSTV2_SLIM_VOUT_CLKDEL=2
+ export SSTV2_SLIS_VIN_CLKDEL=3
+ export SSTV2_SLIS_VOUT_CLKDEL=2
+
+ (Thanks to Phil Ross for this trick).
+
+
+
+
+The Mesa/Voodoo Environment Variables:
+--------------------------------------
+
+ - Only for Windows/Voodoo Rush users, if you define the
+ env. var. MESA_WGL_FX:
+ export MESA_WGL_FX=fullscreen
+ you will get fullscreen rendering;
+
+ - Only for Windows/Voodoo Rush users, if you define the
+ env. var. MESA_WGL_FX:
+ export MESA_WGL_FX=window
+ you will get window rendering (default value);
+
+ - Only for Linux users, you can find more informations about
+ the env. var. MESA_GLX_FX in the "Doing more with Mesa & Linux Glide"
+ section;
+
+ - If you define the env. var. MESA_FX_SWAP_PENDING:
+ export MESA_FX_SWAP_PENDING=4
+ you will able to set the maximum number of swapbuffers
+ commands in the Voodoo FIFO after a swapbuffer (default value: 2);
+
+ - If you define the env. var. MESA_FX_INFO:
+ export MESA_FX_INFO=1
+ you will get some useful statistic.
+
+ - If you define the env. var. MESA_FX_NO_SIGNALS:
+ export MESA_FX_NO_SIGNALS=1
+ Mesa/FX will not install atexit() or signal() handlers.
+
+
+
+Know BUGS and Problems:
+-----------------------
+
+ - fog doesn't work in the right way when using the glDepthRange() function;
+
+ - Maximum texture size: 256x256 (this is an hardware limit);
+
+ - Texture border aren't yet supported;
+
+ - A GL_BLEND in a glTexEnv() is not supported (it is an hardware limit);
+
+ - Use the glBindTexture extension (standard in OpenGL 1.1) for texture
+ mapping (the old way: glTexImage inside a display list, download
+ the texture map each time that you call the display list !!!);
+
+ - Stencil buffer and Accumulation buffer are emulated in software (they are not
+ directly supported by the Hardware);
+
+ - Color index mode not implemented (this is an hardware limit);
+
+ - Thre is an know bug in the Linux Glide library so the in-window-rendering hack
+ and any other operations that requires to read the Voodoo frame buffer
+ (like the accumulation buffer support) doesn't work on Voodoo SLI cards.
+
+ - The driver switch to pure software (_slow_) rendering when:
+
+ - Stencil enabled;
+ - Using the Accumulation buffer;
+ - Blend enabled and blend equation != GL_FUNC_ADD_EXT;
+ - Color logic operation enabled and color logic operation != GL_COPY;
+ - Using GL_SEPARATE_SPECULAR_COLOR;
+ - The four values of glColorMask() aren't the some;
+ - Texture 1D or 3D enabled;
+ - Texture function is GL_BLEND;
+ - Using the Multitexture extension with Voodoo cards with only one TMU;
+ - Using the Multitexture extension with Voodoo cards with more than
+ one TMU, and texture function isn't GL_MODULATE;
+ - Point size is != 1.0 or point params vector != (1.0,0.0,0.0);
+ - Line width != 1.0 or using stipple lines.
+ - Using polygon offset or stipple polygons;
+
+ NOTE: this is list is not yet complete.
+
+
+Hints and Special Features:
+---------------------------
+
+ - Under Linux and with a Voodoo Graphics board, you can use
+ XMesaSetFXmode(XMESA_FX_FULLSCREEN or XMESA_FX_WINDOW) in order to
+ switch on the fly between fullscreen rendering and the in-window-rendering
+ hack.
+
+ - The driver is able to use all the texture memory available: 2/4MB on
+ Voodoo1 boards and 8MB (!) on high-end Voodoo1 and Voodoo2 boards.
+
+ - Trilinear filtering is fully supported on Voodoo boards with two TMUs
+ (high-end Voodoo1 boards and Voodoo2 boards). When only one TMU is
+ available the driver fallback to bilinear filter also if you ask
+ for trilinear filtering.
+
+ - 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
+ context for each board.
+
+ - The v0.19 introduces a new powerful texture memory manager: the
+ texture memory is used as a cache of the set of all defined texture
+ maps. You can now define several MBs of texture maps also with a 2MB
+ of texture memory (the texture memory manager will do automatically
+ all the swap out/swap in
+ texture memory work). The new texture memory manager has also
+ solved a lot of other bugs/no specs compliance/problems
+ related to the texture memory usage.
+
+ - Use triangles and quads strip: they are a LOT faster than sparse
+ triangles and quads.
+
+ - 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.
+
+ - The Voodoo driver chooses the screen resolution according to the
+ requested window size. If you open a 640x480 window, you will get
+ a 640x480 screen resolution, if you open a 800x600 window, you
+ will get a 800x600 screen resolution, etc.
+ Most GLUT demos support the '-geometry' option, so you can choose
+ the screen resolution: 'tunnel -geometry 800x600'.
+ Clearly, you Voodoo board must have enough framebuffer RAM (otherwise
+ the window creation will fail).
+
+ - The glGetString(GL_RENDERER) returns more information
+ about the hardware configuration: "Mesa Glide <version>
+ <Voodoo_Graphics|Voodoo_Rush|UNKNOWN> <num> CARD/<num> FB/
+ <num> TM/<num> TMU/<NOSLI|SLI>"
+ where: <num> CARD is the card used for the current context,
+ <num> FB is the number of MB for the framebuffer,
+ <num> TM is the number of MB for the texture memory,
+ <num> TMU is the number of TMU. You can try to run
+ Mesa/demos/glinfo in order to have an example of the output.
+
+Did you find a lot BUGs and problems ? Good, send me an email.
+
+
+
+FAQ:
+----
+
+For a complete FAQ check the Bernd Kreimeier's Linux 3Dfx HOWTO
+available at http://www.gamers.org/dEngine/xf3D (it includes also
+a lot of informations not strictly related to Linux, so it can be
+useful also if you don't use Linux)
+
+1. What is 3Dfx?
+
+3Dfx Interactive, Inc. is the company which builds the VooDoo 3-D graphics
+chipset (and others) used in popular PC cards such as the Diamond Monster 3D
+and the Orchid Righteous 3D (more informations at http://www.3dfx.com).
+
+
+2. What is Glide?
+
+Glide is a "thin" programming interface for the 3Dfx hardware. It was
+originally written for Windows/Intel but has been ported to Linux/Intel
+by Daryll Strauss.
+
+3Dfx, Inc. should be applauded for allowing the Linux version of Glide
+to be written.
+
+You can directly program with the Glide library if you wish. You can
+obtain Glide from the "Developer" section of the 3Dfx website: www.3dfx.com
+There's a Linux/Glide newsgroup at news://news.3dfx.com/3dfx.glide.linux
+
+
+3. What is fxmesa?
+
+"fxmesa" is the name of the Mesa device driver for the 3Dfx Glide library.
+It was written by David Bucciarelli and others. It works on both Linux
+and Windows. Basically, it allows you to write and run OpenGL-style programs
+on the 3Dfx hardware.
+
+
+4. What is GLQuake?
+
+Quake is a very popular game from id software, Inc. See www.idsoftware.com
+GLQuake is a version of Quake written for OpenGL. There is now a Linux
+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
+ 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
+in order to test 'MesaQuake'.
+
+
+5. What is GLUT?
+
+GLUT is Mark Kilgard's OpenGL Utility Toolkit. It provides an API for
+writing portable OpenGL programs with support for multiple windows, pop-
+up menus, event handling, etc.
+
+Check the Mark's home page for more informations (http://reality.sgi.com/mjk_asd).
+
+Every OpenGL programmer should check out GLUT.
+
+GLUT on Linux uses GLX.
+
+
+6. What is GLX?
+
+GLX is the OpenGL extension to the X Window System. I defines both a
+programming API (glX*() functions) and a network protocol. Mesa implements
+an emulation of GLX on Linux. A real GLX implementation would requires
+hooks into the X server. The 3Dfx hardware can be used with GLX-based
+programs via the MESA_GLX_FX environment variable.
+
+
+7. Is the Voodoo driver able to use the 4Mb texture memory of
+the Pure3D boards ?
+
+Yes, the Voodoo driver v0.20 includes the support for Voodoo
+Graphics boards with more than 2Mb of texture memory.
+
+
+8. Do the Voodoo driver support the Voodoo Rush under Windows ?
+
+Yes, Diego Picciani has developed the support for the Voodoo
+Rush but David Bucciarelli has a Pure3D and a Monster3D and Brian Paul
+has a Monster3D, so the new versions of the Mesa/Voodoo sometime are
+not tested with the Voodoo Rush.
+
+
+9. Do the Voodoo driver support the Voodoo Rush under Linux ?
+
+No because the Linux Glide doesn't (yet) support the Voodoo Rush.
+
+
+10. Can I sell my Mesa/Voodoo based software and include
+a binary copy of the Mesa in order to make the software
+working out of the box ?
+
+Yes.
+
+
+11. Which is the best make target for compiling the Mesa for
+Linux GLQuake ('make linux-glide', 'make linux-386-glide', etc.) ?
+
+'make linux-386-opt-glide' for Voodoo1 and 'make linux-386-opt-V2-glide'
+for Voodoo2 boards because it doesn't include the '-fPIC'
+option (4-5% faster).
+
+
+12. Can I use a Mesa compiled with a 'make linux-386-opt-V2-glide'
+for my applications/programs/demos ?
+
+Yes, there is only one constrain: you can't run two Mesa applications
+at the some time. This isn't a big issue with the today Voodoo Graphics.
+
+
+Thanks to:
+----------
+
+Henri Fousse (he has written several parts of the v0.15 and the old GLUT
+ emulator for Win);
+
+Diego Picciani (he has developed all the Voodoo Rush support and the wgl
+ emulator);
+
+Daryll Strauss (for the Linux Glide and the first Linux support);
+
+Brian Paul (of course);
+
+Dave 'Zoid' Kirsch (for the Linux GLQuake and Linux Quake2test/Q2 ports)
+
+Bernd Kreimeier (for the Linux 3Dfx HOWTO and for pushing companies to offer
+ a better Linux support)
+
+3Dfx and Quantum3D (for actively supporting Linux)
+
+The most update places where find Mesa VooDoo driver related informations are
+the Mesa mailing list and my driver WEB page
+(http://www-hmw.caribel.pisa.it/fxmesa/index.shtml)
+
+
+David Bucciarelli (davibu@tin.it)
+
+Humanware s.r.l.
+Via XXIV Maggio 62
+Pisa, Italy
+Tel./Fax +39-50-554108
+email: info.hmw@plus.it
+www: www-hmw.caribel.pisa.it
diff --git a/xc/extras/Mesa/docs/README.AMIWIN b/xc/extras/Mesa/docs/README.AMIWIN
new file mode 100644
index 000000000..47cf696cc
--- /dev/null
+++ b/xc/extras/Mesa/docs/README.AMIWIN
@@ -0,0 +1,181 @@
+AMIGA AMIWIN PORT of MESA: THE OPENGL SOFTWARE EMULATION
+========================================================
+Port by Victor Ng-Thow-Hing (victorng@dgp.toronto.edu)
+Original Author (Brian Paul (brianp@ssec.wisc.edu)
+
+Dec.1 , 1995: Port of release Mesa 1.2.5
+ - Modifications made to minimize changes to Mesa distribution.
+
+Nov.25, 1995: Port of release Mesa 1.2.4
+
+
+HISTORY
+=======
+As a 3D graphics progammer, I was increasingly frustrated to see OpenGL
+appearing on so many platforms EXCEPT the Amiga. Up to now, the task
+of porting OpenGL directly from native Amiga drawing routines seemed like
+a daunting task. However, two important events made this port possible.
+
+First of all, Brian Paul wrote Mesa, the OpenGL software emulator that
+can be found on many platforms - except the Amiga and Atari (who cares
+about the latter!). This was pretty ironic considering that Mesa was
+originally prototyped on an Amiga! The second great event was when
+Holger Kruse developed AmiWin, the X11R6 server for the Amiga (definitely
+register for this great piece of software) and released a development kit
+so one could compile X programs with SAS/C.
+
+Since Mesa had X routines as its primitive drawing operations, this made
+a marriage of Mesa and Amiwin feasible. I copied over the sources from
+an ftp site, played with the code, wrote some Smakefiles, and voila,
+I had OpenGL programs displaying on my Amiga.
+
+Although the speed is nothing to be impressed about, this port can be
+potentially useful to those who want to quickly test their code in
+wireframe or perhaps learn more about programming with the OpenGL API.
+
+I hope Amiga developers will continue to write excellent software for
+their machine, especially more X clients for Amiwin. If you have any
+solutions so some of my problems in the porting notes, please send me
+some email!
+
+See you around,
+Vic.
+
+HOW TO CREATE THE LIBRARIES AND SAMPLE CODE
+===========================================
+
+Just run the shell script mklib.amiwin in the mesa directory. This will
+make all the libraries and copy them into the mesa/lib directory. If you
+don't want to compile everything, just go to the desired directory and
+type smake in that directory.
+
+Change any of the variables in the smakefiles as necessary. You will REQUIRE
+the Amiwin development kit to compile these libraries since you need X11.LIB
+and the shareable X libraries. Some examples require the AmiTCP4.0
+net.lib static link library and related header files for unix related
+header files and functions like sleep().
+
+HOW TO USE THE MESA LIBRARIES
+=============================
+
+Study the Smakefiles in the demos, samples and book directories for the
+proper SAS/C options and linkable libraries to use. Basically aux calls
+require Mesaaux.LIB, gl calls require MesaGL.LIB, glu calls MesaGLU.LIB,
+tk calls Mesatk.LIB. There is a preliminary port of MesaGLUT.LIB toolkit
+available in the lib directory with the other Mesa libraries. However,
+it seems to cause crashes on some of the sample code. Someone else may want
+to attempt a more stable port.
+
+PORTING NOTES TO AMIWIN
+=======================
+
+My strategy of porting was to leave as much of the code untouched as
+possible. I surrounded any amiga specific changes with
+#ifdef AMIWIN ... #endif or #ifndef AMIWIN ... #endif preprocessor
+symbols. The code was ported on an Amiga 2000, with Fusion 40 accelerator
+and a Picasso II graphics card. The SAS/C 6.56 compiler was used, with
+the AmiWin 2.16 X development kit.
+
+All compilations were done for a 68040 CPU with 68882 math coprocessor for
+maximum speed. Please edit the smakefile for other compilers.
+I wrote smakefiles for the directories I ported. I omitted the Windows
+and Widgets directories. The former is for MS Windows and the latter
+requires Motif, which is not easily available for the Amiga.
+
+Here are the changes I did per directory:
+
+* mesa
+Nov. 25, 1995 v 1.2.4
+ - added a mklib.amiwin shell script that will make all the libraries and
+ sample code for Mesa
+ - created this readme file: readme.AMIGA
+
+* mesa/include
+Dec. 1, 1995 v 1.2.5
+ - added the following to GL/xmesa.h
+ #ifdef AMIWIN
+ #include <pragmas/xlib_pragmas.h>
+ extern struct Library *XLibBase;
+ #endif
+NET CHANGE: xmesa.h
+
+* mesa/src
+Nov. 25, 1995 v 1.2.4
+ - added the necessary pragma calls for X functions to the following:
+ xmesa1.c, xmesa2.c, xmesa3.c, xfonts.c, glx.c
+ This prevents undefined symbols errors during the linking phase for
+ X library calls
+ - created smakefile
+Dec. 1, 1995 v 1.2.5
+ - removed AMIWIN includes from xmesa1.c, xmesa2.c, xmesa3.c, xfonts.c,
+ glx.c since they are now defined in include/GL/xmesa.h
+NET CHANGE: smakefile
+
+* mesa/src-tk
+Nov. 25, 1995 v 1.2.4
+ - added the necessary pragma calls for X functions to the following:
+ private.h
+ - created smakefile
+Dec. 1, 1995 v 1.2.5
+ - removed AMIWIN includes from private.h since it is now defined in
+ include/GL/xmesa.h
+NET CHANGE: smakefile
+
+* mesa/src-glu
+Nov. 25, 1995 v 1.2.4
+ - created smakefile
+NET CHANGE: smakefile
+
+* mesa/src-aux
+Nov. 25, 1995 v 1.2.4
+ - added the necessary pragma calls for X functions to the following:
+ glaux.c
+ - created smakefile
+NET CHANGE: glaux.c, smakefile
+
+* mesa/demos
+Nov. 25, 1995 v 1.2.4
+ - added the necessary pragma calls for X functions to the following:
+ xdemo.c, glxdemo.c, offset.c
+ - created smakefile
+ - put #ifndef AMIWIN ... #endif around sleep() calls in xdemo.c since
+ they are not part of AmigaDOS.
+Dec. 1, 1995 v 1.2.5
+ - removed AMIWIN defines from xdemo.c, glxdemo.c, offset.c since
+ already defined in include/GL/xmesa.h
+ - modified Smakefile to include header and includes from the AmiTCP4.0
+ net.lib linkable library to provide unix-compatible sys/time.h and
+ the sleep() function
+ - removed AMIWIN defines in xdemo.c since sleep() now defined
+NET CHANGE: smakefile
+
+* mesa/samples
+Nov. 25, 1995 v 1.2.4
+ - added the necessary pragma calls for X functions to the following:
+ oglinfo.c
+ - created smakefile
+ - put #ifndef AMIWIN ... #endif around sleep() in blendxor.c
+ - removed olympic from smakefile targets since <sys/time.h> not defined
+Dec. 1, 1995 v 1.2.5
+ - removed AMIWIN defines from oglinfo.c, since already defined in
+ include/GL/xmesa.h
+ - modified Smakefile to include header and includes from the AmiTCP4.0
+ net.lib linkable library to provide unix-compatible sys/time.h and
+ the sleep() function
+ - removed AMIWIN defines in blendxor.c for sleep()
+ - added AMIWIN defines around _MACHTEN_ in olympic.c since xrandom()
+ functions are not defined in any libraries
+ - added olympic back into the Smakefile targets
+NET CHANGE: smakefile, olympic.c
+
+* mesa/book
+Nov. 25, 1995 v 1.2.4
+- created smakefile
+- removed accpersp and dof from smakefile targets since the SAS/C compile seems to
+ confuse the near,far variables with near/far memory models.
+NET CHANGE: smakefile
+
+* mesa/windows
+Dec. 1, 1995 v 1.2.5
+- Removed directory to save space since this is only needed for Windows based
+ machines.
diff --git a/xc/extras/Mesa/docs/README.BEOS b/xc/extras/Mesa/docs/README.BEOS
new file mode 100644
index 000000000..bbd9f16c0
--- /dev/null
+++ b/xc/extras/Mesa/docs/README.BEOS
@@ -0,0 +1,102 @@
+
+ Mesa / BeOS Information
+
+
+
+Introduction
+
+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.
+
+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 R4) is basically just the
+SGI sample implementation, it's pretty slow. You'll see that Mesa
+is considerably faster.
+
+
+
+Source Code
+
+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
+
+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-3.x/BeOS/ directory for one or two BGLView demo
+programs. They should have been compiled along with the Mesa
+library.
+
+
+
+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
+
+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
+
+Mesa's implementation of the BGLView class has an extra member
+function: CopySubBufferMESA(). It basically works like SwapBuffers()
+but it only copies a sub region from the back buffer to the front
+buffer. This is a useful optimization for some applications.
+If you use this method in your code be sure that you check at runtime
+that you're actually using Mesa (with glGetString) so you don't
+cause a fatal error when running with Be's OpenGL.
+
+
+
+Work Left To Do
+
+Color index mode is not implemented yet.
+
+Reading pixels from the front buffer not implemented yet.
+
+There is also a BGLScreen class in BeOS for full-screen OpenGL
+rendering. This should also be implemented for Mesa.
+
+
+
+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
+driver you should get Mesa 2.6.
+
+
+
+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
+work with the new Mesa 3.1 BGLView implementation.
+
+The Glide library hasn't been updated for BeOS R4, to my knowledge, as
+of February, 1999.
+
+
+----------------------------------------------------------------------
+$Id: README.BEOS,v 1.1.1.1 2000/11/30 17:31:36 dawes Exp $
diff --git a/xc/extras/Mesa/docs/README.D3D b/xc/extras/Mesa/docs/README.D3D
new file mode 100644
index 000000000..b41fcb620
--- /dev/null
+++ b/xc/extras/Mesa/docs/README.D3D
@@ -0,0 +1,124 @@
+
+ DirectX 6 Driver for Mesa 3.0
+
+
+This software is distributed under the terms of the GNU Library
+General Public License, see the LICENSE file for details.
+
+
+
+What do you need ?
+------------------
+
+ - A PC with a DirectX 6 video driver installed.
+
+ - Mesa 3.0
+
+ - 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.0 is not
+ compatible with the Glide 2.x so it doesn't work with the current
+ version of the driver;
+
+ - Visual C++ 5.0 is only compiler test but others should be ok with
+ changes to the makefiles (CFLAGS/LFLAGS).
+
+ - DirectX 6 SDK (was a MS download but not sure if still available).
+
+ - SoftIce or another debugger that will get DPF's is nice.
+
+
+Tested on:
+----------
+ Windows 95
+ Windows 98
+ Windows NT 5.0 (beta 2)
+
+
+What is able to do ?
+--------------------
+
+ - the driver will try and use DirectX to rasterize the OpenGL primitives
+ that are sent to the driver. The driver will fall back to SW if the rendering
+ context is too big. The fallback to SW still uses DirectDraw. If the driver
+ fails to support and operation (accum, stencil, etc) then it will try and get
+ Mesa to render it in SW. DirectX 6 features that are unsupported by the
+ installed DirectX 6 driver will be mapped to some other best fit feature.
+
+
+How to compile:
+---------------
+
+ These instructions assume you have Visual C++ installed.
+
+ You might need to increase you enviroment space. You can do this by
+ adding the following statement to you config.sys.
+
+ shell=C:\COMMAND.COM C:\ /p /e:8198
+
+ Next setup you compiler enviroment by running vcvars32.bat in the Visual C++
+ 'bin' directoy.
+
+ c:\DevStudio\VC\bin\vcvars32.bat
+
+ Modify the D3D makefile to point at your SDK install. Example has the SDK
+ installed on my 'f' drive in the root.
+
+ file: \Mesa-3.0\src\makefile.d3d
+
+ SDKROOT=f:\mssdk
+
+ Now you can simply make the project. If you look in the makefile you can see
+ I have some different targets like 'install'.
+
+ nmake /f makefile.d3d
+
+
+FAQ:
+----
+
+ 1) I don't think the driver is using my DirectX driver.
+
+ This maybe true as the current version will only select the Primary D3D driver
+ installed. If you 3D card is the secondary (3dfx) then your out of luck for this
+ release.
+
+ 2) The driver seems like its not HW accelerated.
+
+ If you have a video card with limited memory then you might want to try and
+ change your destop resolution to a low setting (640x480x16) so that the 3D part
+ of the card has more resources. Remeber the driver can't make the card better...
+
+ 3) Nothing works.
+
+ Make sure you have a DirectX '6' driver installed. Check you driver docs for this
+ info or use the SDK info utilities.
+ The final 'dll' is named opengl32.dll and is either in the same directory as the
+ OpenGL program or in your system directory (x:\windows\system or x:\winnt\system32).
+ Check your destop resolution. Most DirectX 6 drivers will only support 16bit and
+ 32bit color depth. To find out for sure you can check the DirectX Info Viewer in
+ the SDK.
+
+
+ 4) Rendering doesn't look right.
+
+ Sometimes this is because the card doesn't support a feature that that is required.
+ This is usually due to unsupported alpha functions (test/blend) or texture mapping.
+ Some cards suffer from too small of an alpha channel. The driver does its best to
+ fallback on unsupported features. This is not to say the driver may not have a bug(s).
+
+ 5) Textures look bad.
+
+ No mipmapping in this release.
+
+
+Thanks to:
+----------
+
+Brian Paul
+
+
+
+
+Leigh McRae (leigh@altsoftware.com)
+February 9, 1999
+
diff --git a/xc/extras/Mesa/docs/README.DJA b/xc/extras/Mesa/docs/README.DJA
new file mode 100644
index 000000000..a5f7bb8a9
--- /dev/null
+++ b/xc/extras/Mesa/docs/README.DJA
@@ -0,0 +1,69 @@
+
+INTRODUCTION
+~~~~~~~~~~~~
+This is an Allegro (DJGPP) driver for MESA. This release also includes a
+"skeletal" version of GLUT for DJGPP. It was developed for the sole
+purpose of compiling the sample programs. It NOT AT ALL a complete
+version of GLUT!
+
+ALL CODE IS SUBJECT TO THE MESA COPYRIGHT AGREEMENT.
+
+
+CONTACT INFORMATION
+~~~~~~~~~~~~~~~~~~~
+
+ Name: Bernhard Tschirren
+ Email: bernie-t@geocities.com
+ WWW: http://www.cs.curtin.edu.au/~tschirre/
+ http://www.geocities.com/SiliconValley/7259/
+
+
+REQUIRED FILES
+~~~~~~~~~~~~~~
+ You will need MESA, of course. I have only tested it with version
+ 3.0, but it will probably work with later versions as well. It will
+ NOT work with earlier versions due to major changes to the MESA
+ driver interface.
+ AVAILABLE AT: http://www.ssec.wisc.edu/~brianp/Mesa.html
+
+ You will also need DJGPP and "Allegro 3.0 + WIP". It will NOT work
+ with the release version of Allegro 3.0 because I'm using some new
+ features that weren't present in the first release.
+ AVAILABLE AT: http://www.talula.demon.co.uk/allegro/
+
+
+INSTALLATION
+~~~~~~~~~~~~
+ Unzip into the MESA directory, and type "make -f Makefile.dja" to
+ compile all libraries and samples.
+
+ If you get compiler (or linker) errors, make sure that you have
+ "Allegro 3.0 + WIP" and that DJGPP\INCLUDE has the new allegro.h,
+ and that DJGPP\LIB has the new liballeg.a.
+
+
+BUGS & OTHER SHORTCOMINGS
+~~~~~~~~~~~~~~~~~~~~~~~~~
+ src/allegro/direct.h:
+ Somehow the line demo (samples/line.c) only works in
+ double-buffer mode. The anti-aliased lines appear fat when using
+ direct mode. This is obviously a bug in direct.h - but I cannot
+ find it :(
+
+ src-glut.dja/*:
+ Only the basics work - main loop and keyboard/mouse input.
+ Windows, menus and fonts DO NOT WORK, and will NEVER be
+ implemented (at least not by me). This version of GLUT was only
+ created to allow the MESA sample programs to compile.
+
+ include/GL/glut.h:
+ This file clashes with the REAL glut.h (by Mark J. Kilgard).
+ Unfortunately, you cannot have both installed at the same time.
+ A backup exists (include/GL/glut_h.dja) in case you accidentally
+ copy Mark's glut.h over this one.
+
+
+Good Luck
+
+ Bernie (02/11/1998)
+
diff --git a/xc/extras/Mesa/docs/README.DOS b/xc/extras/Mesa/docs/README.DOS
new file mode 100644
index 000000000..5d177045f
--- /dev/null
+++ b/xc/extras/Mesa/docs/README.DOS
@@ -0,0 +1,121 @@
+Mesa 2.2 MSDOS Port Revision 0.9.1
+----------------------------------
+
+I`ve setup an ftp site to get the latest versions of mesa msdos
+its at 206.103.168.10 login mesa password mesa
+rememberr though those are likely to be beta/alpha versions,
+the one you get from brian paul`s homepage is the release version.
+
+I`ll stick dmake.exe (3.80) there too..
+
+Watcom C Build Instructions ----------------------------------------------------
+
+To compile with Watcom C 10.x do in each of
+mesa/src mesa/src-tk mesa/src-aux mesa/src-glu do this
+
+make sure you have a \etc\startup.mk, i`ve supplied mine in
+case you need it, watch you don`t overwrite your own.
+
+dmake -f makefile.dos
+
+Demos can be built with the mesados.bat use, edit the mesados.bat first
+and make any changes for your system !
+
+mesados <demo_name>
+
+eg. mesados wave
+
+will build wave.exe
+
+DJGPP Build Instructions -------------------------------------------------------
+
+To compile the libs, demos, and samples with DJGPP do:
+
+make -f makefile.dj
+
+
+VESA Instructions --------------------------------------------------------------
+
+To use the VESA support you *need* to get hold of Scitechs SuperVGA KIT library
+from http://wwww.scitechsoft.com, also make sure you remove the # from the
+#CFLAGS += UNIVBE in the src/makefile.dos line, I`m more than sure i can`t
+distribute the files required with DOS Mesa. Its a very good library and makes
+VESA intergration very easy.
+
+Currently the DJGPP version has no VESA support. I`m working on it, djgpp
+has some really bad tools, ld is very poor add a.out support back !.
+
+Some of the demos won`t build out of the box as they use near and far as
+variable names, which are reserved words on DOS compilers. Some other
+demos use unix style time() functions which some dos compilers don`t support.
+
+--------------------------------------------------------------------------------
+
+I use dmake because wmake, make and nmake all suck big time, dmake
+is excellent and is unix friendly. I`ll send the .exe to anyone
+who wants it, or make it available at my website..
+
+I use Denis Vadura`s Dmake 3.80PL
+
+If anyone hassles me enough i might rewrite the makefiles for wmake at
+least.
+
+A couple of the demos don`t work yet....
+
+--------------------------------------------------------------------------------
+
+Things I (or some kind soul) need to do..
+
+Change the key handler, i have a keyboard interrupt already made just
+needs integration. (the one in there is really poor and is temporary)
+
+The RGB mode is really a 256 colour mode, it allocates the first 256
+colours used. then tries to map them to others allocated later. Currently
+it isn`t that good, its difficult to make up a palette that will effectively
+work for all situations, its not really effective at the moment.
+
+General improvements.
+
+GLX support.
+
+Does anyone really want mode13 support ? Do i need to fix up the RGB
+mode of 320x200x256 ? email me at cwallace@dreamworks.com and nag me
+or any other wishlist stuff for modes.
+
+Better Glide support, thanks to brian bruning and gary mctaggart
+at 3dfx for the dual board and the support.
+
+Change Scitech SuperVGA KIT to MGL ( thanks to tom and kendall at scitech for
+sending me a copy )
+
+MsVC support.
+
+Figure out a way of guessing the resolution , I`m more than likely
+going to change the way it works, so that it first tries for 3DFX,
+then Vesa, then mode13.
+
+--------------------------------------------------------------------------------
+
+Long Live OpenGL(tm) and kudos to brian paul for Mesa.
+
+--------------------------------------------------------------------------------
+
+Revision History
+
+v0.0 10/30/96 Initial DOS 320x200x256 Using Mesa 1.2.8
+v0.1 11/05/96 Ported to Mesa 2.0
+v0.3 11/12/96 Ported to Mesa 2.1
+v0.4 11/12/96 Started to assemble for release.
+v0.5 11/28/96 Small changes for release.
+v0.6 Sun 12-08-1996 Added VESA support.
+v0.7 Sun 12-08-1996 Cleaned up, should be able to compile without Watcom.
+v0.8 Sun 12-28-1996 Built for DJGPP. ( time traveller )
+v0.9 Thu 01-09-1997 Added 3DFX Glide support.
+v0.9.1 Fri 02-28-1997 Integrated into 2.2.7 beta
+
+Charlie Wallace - Software Scientist, Dreamworks SKG Interactive
+--------------------------------------------------------------------------------
+http://www.geocities.com/~charlie_x cwallace@dreamworks.com
+ charlie_x@geocities.com
+ charlie__x@msn.com
+ charlie@trespasser.com
diff --git a/xc/extras/Mesa/docs/README.GGI b/xc/extras/Mesa/docs/README.GGI
new file mode 100644
index 000000000..ddb67725f
--- /dev/null
+++ b/xc/extras/Mesa/docs/README.GGI
@@ -0,0 +1,26 @@
+GGIMesa for LibGGI 2.x
+
+Requirements:
+-------------
+LibGGI 2.0 or greater
+
+Installation:
+-------------
+To install GGIMesa, follow the instructions in INSTALL.GNU. If you
+wish to install GGIGLUT as well, first install GGIMesa and then run
+
+make
+make install (must be root)
+
+in ggi/ggiglut.
+
+Notes:
+------
+
+* Set the environment variables GGIMESA_DEBUG and/or GGIGLUT_DEBUG
+to 255 to see lots of debugging output.
+
+* GGIGLUT contains support for all of the GLUT 3.6 API except for the
+high-level primitive drawing functions, but many of the functions (in
+particular the menu drawing functions) are just stubs.
+
diff --git a/xc/extras/Mesa/docs/README.LYNXOS b/xc/extras/Mesa/docs/README.LYNXOS
new file mode 100644
index 000000000..e3ab9804b
--- /dev/null
+++ b/xc/extras/Mesa/docs/README.LYNXOS
@@ -0,0 +1,64 @@
+
+Mesa 3.0 for LynxOS builds in the following way:
+
+make lynxos
+
+This will build all the libraries and demo applications. You should have
+around 400 megabytes free for everything since everything is done with
+static
+libraries.
+
+Before using this make file however, you should perform the following
+actions:
+0) cd to the Mesa-3.0 directory
+1) Copy the GL directory under the include directory to /usr/include.
+2) Copy the files in the lib directory to /lib.
+3) Make links so that the Mesa libraries look like ordinary OpenGL
+libraries
+in /lib. This is important for compatibility with other OpenGL apps. This
+is done as follows:
+
+cd /lib
+ln -s libMesaGL.a libGL.a
+ln -s libMesaGLU.a libGLU.a
+
+Mesa 3.0 includes the GLUT (GL Utility Toolkit) by default.
+The demo applications are done using this toolkit.
+
+Mesa makefiles for building their apps could be used as well, but the
+following one is much more concise. Note that the order of the X libraries
+is important to the linker so that all symbols get resolved correctly.
+Changing the order may result in having to list a library twice to make
+sure all linkages are made correctly.
+
+----cut here for Makefile -----
+
+FILES = your_app.x
+
+SPECIAL_INCLUDES = -I/usr/include/GL
+
+SPECIAL_CFLAGS = -g -ansi -pedantic -funroll-loops -ffast-math -DSHM
+
+SPECIAL_LIBS = -lglut -lGLU -lGL -lm -L/usr/X11/lib -lXext -lXmu -lXi \
+-lX11 -lbsd -g
+
+STANDARD_OFILES = $(FILES:.x=.o)
+
+%.o: %.c
+ gcc -c $(SPECIAL_CFLAGS) $(SPECIAL_INCLUDES) $< -o $@
+
+all: $(STANDARD_OFILES)
+ gcc -o your_app $(STANDARD_OFILES) $(SPECIAL_LIBS)
+
+
+----cut here for Makefile-----
+
+I have tested Mesa under LynxOS 3.0 and 3.01. It should build fine under
+other
+versions as well. Note, however, that LynxOS versions prior to 3.0 are not
+binary compatible, so you will have to rebuild from source.
+
+
+Vik Sohal
+vik@lynx.com
+January 13, 1999
diff --git a/xc/extras/Mesa/docs/README.MINGW32 b/xc/extras/Mesa/docs/README.MINGW32
new file mode 100644
index 000000000..44c55aa02
--- /dev/null
+++ b/xc/extras/Mesa/docs/README.MINGW32
@@ -0,0 +1,53 @@
+August 30, 1998 -- Paul Garceau
+Updated January 13, 2000 -- Paul Garceau (pgarceau@teleport.com)
+
+DISCLAIMER: I make this port of the Mesa 3-D Graphics Library as a service
+to the general public. I can, in no way support or make any guarantee that the
+build will work for your system.
+
+ The associated packages and batch files I have included as part of the GCC-2.95.2/Mingw32 extension are provided "As-is" with out any guarantee of support or functionality from this author.
+
+ Feel free to modify or change things as you see fit, just remember that
+I can't support any modifications you might want to make to the files which I
+have included OR the lgpl protected Mesa 3-D Graphics Library.
+
+ I recommend using GCC-2.95.2/Mingw32 which is available at Mumit Khans' ftp site:
+
+ (ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/)
+
+ This build has been tested under WinNT4/SP6. Win9x and WinNT5 remain untested by me. I have not tested any of the demos included with Mesa3d.
+
+ I recommend using the GCC-2.95.2/Mingw32.
+
+ ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/gcc-2.95.2
+
+ Much thanks to the combined efforts of Mumit Khan, Jan-Jaap Vanderhagen
+and Colin Peters for making it possible for the Mingw32 toolchain to exist. Also, thanks go out to Stephane Rehel for the work that was completed on the Cygwin build.
+
+Installing GCC-2.95.2/Mingw32 Build:
+
+ a) Open the file archive (either tar.gz or .zip extensions)
+
+ b) Decide the directory you want to move the archived files to.
+
+ d) Extract the files from the archive.
+
+ e) Edit the mingw32.bat file to accomodate your choice of directory structure.
+
+ %mesaroot%: This is your root directory (Mesa-3.3)
+ %mesasrc%: This is the Mesa-3.3 src directory (Mesa-3.3\src)
+ %mesalib%: This is where the build will put libGL.a and libGLU.a
+
+Running the Build:
+
+ Open your Command Prompt or MS-DOS prompt.
+ Go to your Mesa-3.3 'root' directory
+ At the command line type: mingw32
+
+ That's all there is to it.
+
+ Enjoy!
+
+ Peace,
+
+ Paul G. (pgarceau@teleport.com) \ No newline at end of file
diff --git a/xc/extras/Mesa/docs/README.MITS b/xc/extras/Mesa/docs/README.MITS
new file mode 100644
index 000000000..a89176a62
--- /dev/null
+++ b/xc/extras/Mesa/docs/README.MITS
@@ -0,0 +1,102 @@
+
+ Mesa 3.0 MITS Information
+
+
+This software is distributed under the terms of the GNU Library
+General Public License, see the LICENSE file for details.
+
+
+This document is a preliminary introduction to help you get
+started. For more detaile information consult the web page.
+
+http://10-dencies.zkm.de/~mesa/
+
+
+
+Version 0.1 (Yes it's very alpha code so be warned!)
+Contributors:
+ Emil Briggs (briggs@bucky.physics.ncsu.edu)
+ David Bucciarelli (tech.hmw@plus.it)
+ Andreas Schiffler (schiffler@zkm.de)
+
+
+
+1. Requirements:
+ Mesa 3.0.
+ An SMP capable machine running Linux 2.x
+ libpthread installed on your machine.
+
+
+2. What does MITS stand for?
+ MITS stands for Mesa Internal Threading System. By adding
+ internal threading to Mesa it should be possible to improve
+ performance of OpenGL applications on SMP machines.
+
+
+3. Do applications have to be recoded to take advantage of MITS?
+ No. The threading is internal to Mesa and transparent to
+ applications.
+
+
+4. Will all applications benefit from the current implementation of MITS?
+ No. This implementation splits the processing of the vertex buffer
+ over two threads. There is a certain amount of overhead involved
+ with the thread synchronization and if there is not enough work
+ to be done the extra overhead outweighs any speedup from using
+ dual processors. You will not for example see any speedup when
+ running Quake because it uses GL_POLYGON and there is only one
+ polygon for each vertex buffer processed. Test results on a
+ dual 200 Mhz. Pentium Pro system show that one needs around
+ 100-200 vertices in the vertex buffer before any there is any
+ appreciable benefit from the threading.
+
+
+5. Are there any parameters that I can tune to try to improve performance.
+ Yes. You can try to vary the size of the vertex buffer which is
+ define in VB_MAX located in the file src/vb.h from your top level
+ Mesa distribution. The number needs to be a multiple of 12 and
+ the optimum value will probably depend on the capabilities of
+ your machine and the particular application you are running.
+
+
+6. Are there any ways I can modify the application to improve its
+ performance with the MITS?
+ Yes. Try to use as many vertices between each Begin/End pair
+ as possbile. This will reduce the thread synchronization
+ overhead.
+
+
+7. What sort of speedups can I expect?
+ On some benchmarks performance gains of up to 30% have been
+ observerd. Others may see no gain at all and in a few rare
+ cases even some degradation.
+
+
+8. What still needs to be done?
+ Lots of testing and benchmarking.
+ A portable implementation that works within the Mesa thread API.
+ Threading of additional areas of Mesa to improve performance
+ even more.
+
+
+
+Installation:
+
+ 1. This assumes that you already have a working Mesa 3.0 installation
+ from source.
+ 2. Place the tarball MITS.tar.gz in your top level Mesa directory.
+ 3. Unzip it and untar it. It will replace the following files in
+ your Mesa source tree so back them up if you want to save them.
+
+
+ README.MITS
+ Make-config
+ Makefile
+ mklib.glide
+ src/vbxform.c
+ src/vb.h
+
+ 4. Rebuild Mesa using the command
+
+ make linux-386-glide-mits
+
diff --git a/xc/extras/Mesa/docs/README.NeXT b/xc/extras/Mesa/docs/README.NeXT
new file mode 100644
index 000000000..1ad9a9e5c
--- /dev/null
+++ b/xc/extras/Mesa/docs/README.NeXT
@@ -0,0 +1,6 @@
+The NeXT support has now been incorporated into the OpenStep support.
+You can build NeXT libraries simply by typing "make next", though before
+linking they will need to be ranlib'd by hand. For more information see
+the README.OpenStep file, together with the README files in OpenStep/Old_Demos.
+
+-Pete French. (pete@ohm.york.ac.uk) 28/5/1998
diff --git a/xc/extras/Mesa/docs/README.OS2 b/xc/extras/Mesa/docs/README.OS2
new file mode 100644
index 000000000..b3374ea23
--- /dev/null
+++ b/xc/extras/Mesa/docs/README.OS2
@@ -0,0 +1,96 @@
+ README for port of Mesa 3.x to XFree86 on OS/2 (X/2)
+ (as of 19990514)
+
+
+ Contents:
+
+ 1) Binary release
+ 2) Building from sources
+ 3) History
+ 4) Todo
+ 5) Mesa Home Page
+
+
+1) Binary release
+
+ Though the Mesa sources should build in a quite reasonable time even on
+ a 585 class machine a binary relase is available (check topic 4) for an URL)
+ This package includes:
+
+ - lib/MesaGL.dll, MesaGL.a
+ - lib/MesaGLU.dll, MesaGLU.a
+ - lib/glut.dll, glut.a
+ - include/GL/*.h
+
+ Installing this in your XFree86 tree will enable you to build and
+ run all applications compatible with Mesa (and the current DLL
+ interface, of course ;-)
+ As usual the OMF-style libraries can be created using emxomf.
+ (e.g. "emxomf foo.a" creates the foo.lib omf-style library).
+ The static libraries are rarely used and you have to rebuild
+ Mesa to get them. They're a supported target, so you get
+ them in a straightforward way (see below).
+
+ The testing of these libraries was limited to the supplied
+ demos/examples and a quite small number of third-party apps.
+ No warranty ... as usual ... ;-)
+
+
+2) Instructions to build Mesa 3.x for XFree86/OS2 from sources:
+
+ Except the official Mesa source distribution you need:
+ - a recent version of XFree86 (3.3.x or above) including
+ the programming libraries
+ - EMX 0.9c (0.9d might work, never checked)
+ - GNU make
+ - REXX (!)
+
+ The creation of the DLLs as well as of the static libraries
+ (if you want to have them) is handled in "mklib-emx.cmd",
+ a small REXX script. Perhaps not the best idea, but this
+ way it fits best in the scheme used to build libraries
+ on all platforms in Mesa 3.x.
+
+ To actually build the libraries and demos, check mklib-emx.cmd
+ and modify it as desired. Then type
+ make os2-x11
+ and wait for completion ;-)
+
+
+3) History
+
+ Initially Darren Abbott (abbott@hiwaay.net) ported Mesa versions 2.x
+ to XFree86 OS/2. This port might still be available from
+ http://fly.HiWAAY.net/~abbott/xfree86-os2/xfree86.html
+
+ The current port picked up things during the beta test for 3.0.
+ No major changes in the source were done. The build mechanism under OS/2
+ has been made very similar to other platforms (if you treat mklib-emx.cmd
+ as a "black box").
+ Advantage is that X/2 is now a valid target and all files are
+ integrated in the official source distribution.
+ Disadvantage is that this port (i.e. the DLLs' interface itself) is
+ definitly NOT COMPATIBLE to those of version 2.x.
+ It's uncertain whether this would be at all possible but since there
+ a _very_ few those apps it's not worth to find out anyway.
+ Also some libs (MesaTK, MesaAUX) are withdrawn from the Mesa distribution,
+ and accordingly from the OS/2 port.
+
+4) Todo
+
+ By now binary compatiblity is ensured by using the function names
+ as entry points instead of ordinals. This might cost performance and
+ is subject to change in future. In addition the supplied X86 assembler
+ source is not used yet.
+
+5) Mesa Home Page
+
+ You can get the source code and more information about Mesa from
+ http://www.mesa3d.org/
+
+ The OS/2 ports should be available from
+ http://r350.ee.ntu.edu.tw/~hcchu/os2/ports
+
+--
+Alexander Mai
+st002279@hrzpub.tu-darmstadt.de
diff --git a/xc/extras/Mesa/docs/README.OpenStep b/xc/extras/Mesa/docs/README.OpenStep
new file mode 100644
index 000000000..a566eca67
--- /dev/null
+++ b/xc/extras/Mesa/docs/README.OpenStep
@@ -0,0 +1,35 @@
+This is a port of the GL and GLU libraries to NeXT/Apple object
+orientated systems. As these systems have their own window handling
+systems we simply use the offscreen rendering capability of Mesa
+to generate bitmaps which may then be displayed by the application
+with a View as required. Example pieces of code may be found in the
+OpenStep directory.
+
+Sadly there are now a proliferation of different system that we need to
+support compilation for: The original NextStep system, The OpenStep
+system, the Rhapsody/Mac OS X system and also the windows implementations
+of the latter two systems. This version of the code has been compiled and
+tested under the following architectures:
+
+ NextStep 3.3
+ OpenStep 4.2
+ Rhapsody DR2
+ WebObjects for NT 3.5
+ WebObjects for NT 4.0
+
+All tests were done with Intel processors. Feedback on other systems would,
+however, be appreciated !
+
+On UNIX systems simply type "make openstep". Under Windows systems
+with WebObjects run the "win32-openstep.sh" script from within the Bourne
+shell provided with the development environment. In both cases this will
+build the libraries and place them into the "lib" directory. Some examples
+may be found in the OpenStep directory showing how to use the code in an
+actual application (MesaView) as well as some command line demos.
+
+The CC variable may be specified on the command line for doing such things
+as building FFAT libraries or using alternative compilers to the standard 'cc'
+e.g. make CC='cc -arch m68k -arch i386' openstep" will build the libraries
+with both intel and motorola architectures.
+
+-Pete French. (pete@ohm.york.ac.uk) 7/6/1999
diff --git a/xc/extras/Mesa/docs/README.QUAKE b/xc/extras/Mesa/docs/README.QUAKE
new file mode 100644
index 000000000..f30ec4ab7
--- /dev/null
+++ b/xc/extras/Mesa/docs/README.QUAKE
@@ -0,0 +1,208 @@
+
+ Info on using Mesa 3.0 with Linux Quake I and Quake II
+
+
+
+Disclaimer
+----------
+
+I am _not_ a Quake expert by any means. I pretty much only run it to
+test Mesa. There have been a lot of questions about Linux Quake and
+Mesa so I'm trying to provide some useful info here. If this file
+doesn't help you then you should look elsewhere for help. The Mesa
+mailing list or the news://news.3dfx.com/3dfx.linux.glide newsgroup
+might be good.
+
+Again, all the information I have is in this file. Please don't email
+me with questions.
+
+If you have information to contribute to this file please send it to
+me at brianp@elastic.avid.com
+
+
+
+Linux Quake
+-----------
+
+You can get Linux Quake from http://www.idsoftware.com/
+
+Quake I and II for Linux were tested with, and include, Mesa 2.6. You
+shouldn't have too many problems if you simply follow the instructions
+in the Quake distribution.
+
+
+
+RedHat 5.0 Linux problems
+-------------------------
+
+RedHat Linux 5.x uses the GNU C library ("glibc" or "libc6") whereas
+previous RedHat and other Linux distributions use "libc5" for its
+runtime C library.
+
+Linux Quake I and II were compiled for libc5. If you compile Mesa
+on a RedHat 5.x system the resulting libMesaGL.so file will not work
+with Linux Quake because of the different C runtime libraries.
+The symptom of this is a segmentation fault soon after starting Quake.
+
+If you want to use a newer version of Mesa (like 3.x) with Quake on
+RedHat 5.x then read on.
+
+The solution to the C library problem is to force Mesa to use libc5.
+libc5 is in /usr/i486-linux-libc5/lib on RedHat 5.x systems.
+
+Emil Briggs (briggs@tick.physics.ncsu.edu) nicely gave me the following
+info:
+
+> I only know what works on a RedHat 5.0 distribution. RH5 includes
+> a full set of libraries for both libc5 and glibc. The loader ld.so
+> uses the libc5 libraries in /usr/i486-linux-libc5/lib for programs
+> linked against libc5 while it uses the glibc libraries in /lib and
+> /usr/lib for programs linked against glibc.
+>
+> Anyway I changed line 41 of mklib.glide to
+> GLIDELIBS="-L/usr/local/glide/lib -lglide2x -L/usr/i486-linux-libc5/lib"
+>
+> And I started quake2 up with a script like this
+> #!/bin/csh
+> setenv LD_LIBRARY_PATH /usr/i486-linux-libc5/lib
+> setenv MESA_GLX_FX f
+> ./quake2 +set vid_ref gl
+> kbd_mode -a
+> reset
+
+
+I've already patched the mklib.glide file. You'll have to start Quake
+with the script shown above though.
+
+
+
+**********************
+
+Daryll Strauss writes:
+
+Here's my thoughts on the problem. On a RH 5.x system, you can NOT build
+a libc5 executable or library. Red Hat just doesn't include the right
+stuff to do it.
+
+Since Quake is a libc5 based application, you are in trouble. You need
+libc5 libraries.
+
+What can you do about it? Well there's a package called gcc5 that does
+MOST of the right stuff to compile with libc5. (It brings back older
+header files, makes appropriate symbolic links for libraries, and sets
+up the compiler to use the correct directories) You can find gcc5 here:
+ftp://ecg.mit.edu/pub/linux/gcc5-1.0-1.i386.rpm
+
+No, this isn't quite enough. There are still a few tricks to getting
+Mesa to compile as a libc5 application. First you have to make sure that
+every compile uses gcc5 instead of gcc. Second, in some cases the link
+line actually lists -L/usr/lib which breaks gcc5 (because it forces you
+to use the glibc version of things)
+
+If you get all the stuff correctly compiled with gcc5 it should work.
+I've run Mesa 3.0B6 and its demos in a window with my Rush on a Red Hat
+5.1 system. It is a big hassle, but it can be done. I've only made Quake
+segfault, but I think that's from my libRush using the wrong libc.
+
+Yes, mixing libc5 and glibc is a major pain. I've been working to get
+all my libraries compiling correctly with this setup. Someone should
+make an RPM out of it and feed changes back to Brian once they get it
+all working. If no one else has done so by the time I get the rest of my
+stuff straightened out, I'll try to do it myself.
+
+ - |Daryll
+
+
+
+*********************
+
+David Bucciarelli (tech.hmw@plus.it) writes:
+
+I'm using the Mesa-3.0beta7 and the RedHat 5.1 and QuakeII is
+working fine for me. I had only to make a small change to the
+Mesa-3.0/mklib.glide file, from:
+
+
+ GLIDELIBS="-L/usr/local/glide/lib -lglide2x
+-L/usr/i486-linux-libc5/lib -lm"
+
+to:
+
+ GLIDELIBS="-L/usr/i486-linux-libc5/lib -lglide2x"
+
+and to make two symbolic links:
+
+[david@localhost Mesa]$ ln -s libMesaGL.so libMesaGL.so.2
+[david@localhost Mesa]$ ln -s libMesaGLU.so libMesaGLU.so.2
+
+I'm using the Daryll's Linux glide rpm for the Voodoo2 and glibc (it
+includes also the Glide for the libc5). I'm not using the /dev/3Dfx and
+running QuakeII as root with the following env. var:
+
+export
+LD_LIBRARY_PATH=/dsk1/home/david/src/gl/Mesa/lib:/usr/i486-linux-libc5/lib
+
+I think that all problems are related to the glibc, Quake will never
+work if you get the following output:
+
+[david@localhost Mesa]$ ldd lib/libMesaGL.so
+ libglide2x.so => /usr/lib/libglide2x.so (0x400f8000)
+ libm.so.6 => /lib/libm.so.6 (0x40244000)
+ libc.so.6 => /lib/libc.so.6 (0x4025d000)
+ /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00000000)
+
+You must get the following outputs:
+
+[david@localhost Mesa]# ldd lib/libMesaGL.so
+ libglide2x.so => /usr/i486-linux-libc5/lib/libglide2x.so
+(0x400f3000)
+
+[root@localhost quake2]# ldd quake2
+ libdl.so.1 => /lib/libdl.so.1 (0x40005000)
+ libm.so.5 => /usr/i486-linux-libc5/lib/libm.so.5 (0x40008000)
+ libc.so.5 => /usr/i486-linux-libc5/lib/libc.so.5 (0x40010000)
+
+[root@localhost quake2]# ldd ref_gl.so
+ libMesaGL.so.2 =>
+/dsk1/home/david/src/gl/Mesa/lib/libMesaGL.so.2 (0x400eb000)
+ libglide2x.so => /usr/i486-linux-libc5/lib/libglide2x.so
+(0x401d9000)
+ libX11.so.6 => /usr/i486-linux-libc5/lib/libX11.so.6
+(0x40324000)
+ libXext.so.6 => /usr/i486-linux-libc5/lib/libXext.so.6
+(0x403b7000)
+ libvga.so.1 => /usr/i486-linux-libc5/lib/libvga.so.1
+(0x403c1000)
+ libm.so.5 => /usr/i486-linux-libc5/lib/libm.so.5 (0x403f5000)
+ libc.so.5 => /usr/i486-linux-libc5/lib/libc.so.5 (0x403fd000)
+
+
+***********************
+
+Steve Davies (steve@one47.demon.co.uk) writes:
+
+
+Try using:
+
+ export LD_LIBRARY_PATH=/usr/i486-linux-libc5/lib
+ ./quake2 +set vid_ref gl
+
+to start the game... Works for me, but assumes that you have the
+compatability libc5 RPMs installed.
+
+
+***************************
+
+WWW resources - you may find additional Linux Quake help at these URLs:
+
+
+http://quake.medina.net/howto
+
+http://webpages.mr.net/bobz
+
+http://www.linuxgames.com/quake2/
+
+
+
+----------------------------------------------------------------------
+$Id: README.QUAKE,v 1.1.1.1 2000/11/30 17:31:36 dawes Exp $
diff --git a/xc/extras/Mesa/docs/README.THREADS b/xc/extras/Mesa/docs/README.THREADS
new file mode 100644
index 000000000..fb6e0ff3d
--- /dev/null
+++ b/xc/extras/Mesa/docs/README.THREADS
@@ -0,0 +1,52 @@
+
+
+Mesa Threads README
+-------------------
+
+Thread safety was introduced in Mesa 2.6 by John Stone and
+Christoph Poliwoda.
+
+It was redesigned in Mesa 3.3 so that thread safety is
+supported by default (on systems which support threads,
+that is). There is no measurable penalty on single
+threaded applications.
+
+NOTE that the only _driver_ which is thread safe at this time
+is the OS/Mesa driver!
+
+
+At present the mthreads code supports three thread APIS:
+ 1) POSIX threads (aka pthreads).
+ 2) Solaris / Unix International threads.
+ 3) Win32 threads (Win 95/NT).
+
+Support for other thread libraries can be added src/glthread.[ch]
+
+
+In order to guarantee proper operation, it is
+necessary for both Mesa and application code to use the same threads API.
+So, if your application uses Sun's thread API, then you should build Mesa
+using one of the targets for Sun threads.
+
+The mtdemos directory contains some example programs which use
+multiple threads to render to osmesa rendering context(s).
+
+Linux users should be aware that there exist many different POSIX
+threads packages. The best solution is the linuxthreads package
+(http://pauillac.inria.fr/~xleroy/linuxthreads/) as this package is the
+only one that really supports multiprocessor machines (AFAIK). See
+http://pauillac.inria.fr/~xleroy/linuxthreads/README for further
+information about the usage of linuxthreads.
+
+If you are interested in helping with thread safety work in Mesa
+join the Mesa developers mailing list and post your proposal.
+
+
+Regards,
+ John Stone -- j.stone@acm.org johns@cs.umr.edu
+ Christoph Poliwoda -- poliwoda@volumegraphics.com
+
+
+Version info:
+ Mesa 2.6 - initial thread support.
+ Mesa 3.3 - thread support mostly rewritten (Brian Paul)
diff --git a/xc/extras/Mesa/docs/README.VMS b/xc/extras/Mesa/docs/README.VMS
new file mode 100644
index 000000000..9cb4724eb
--- /dev/null
+++ b/xc/extras/Mesa/docs/README.VMS
@@ -0,0 +1,28 @@
+
+VMS support contributed by Jouk Jansen (joukj@hrem.stm.tudelft.nl)
+
+
+The latest version was tested on a VMSAlpha7.2 system using DECC6.0, but
+probably also works for other versions.
+
+At the moment only the libraries LIBMESGL.EXE/LIBMESGL.OLB,
+LIBMESAGLU.EXE/LIBMESAGLU.OLB and LIBGLUT.EXE/LIBGLUT.OLB and the demos of the
+directory [.DEMOS] can be build.
+However, feel free to create the missing "decrip.mms-files" in the other
+directories.
+
+ The make files were tested
+using the DIGITAL make utility called MMS. There is also a public domain
+clone available (MMK) and I think, but it is not tested, that this
+utility will give (hardly) any problem.
+
+To make everything just type MMS (or MMK) in the main directory of
+mesagl. For MMS the deafult makefile is called descrip.mms, and
+that is what I have called it. I included alse some config files,
+all having mms somewhere in the name which all the makefiles need
+(just as your unix makefiles).
+
+On Alpha platforms at default a sharable images for the libraries are created.
+To get a static library make it by typing MMS/MACRO=(NOSHARE=1).
+On VAX platforms only static libraries can be build.
+
diff --git a/xc/extras/Mesa/docs/README.WIN32 b/xc/extras/Mesa/docs/README.WIN32
new file mode 100644
index 000000000..65e4fc2b6
--- /dev/null
+++ b/xc/extras/Mesa/docs/README.WIN32
@@ -0,0 +1,623 @@
+
+ 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 \ No newline at end of file
diff --git a/xc/extras/Mesa/docs/README.X11 b/xc/extras/Mesa/docs/README.X11
new file mode 100644
index 000000000..e17882566
--- /dev/null
+++ b/xc/extras/Mesa/docs/README.X11
@@ -0,0 +1,326 @@
+
+ Mesa 3.4 Unix/X11 Information
+
+
+
+Installation
+============
+
+There are two ways to compile Mesa on Unix/X11 systems:
+
+1. The old way:
+ First type 'make' alone to see the list of system
+ configurations currently supported. If you see your configuration on the
+ list, type 'make <config>'. Most popular Unix/X workstations are currently
+ supported.
+
+ If your system configuration is not listed by 'make', you'll have to modify
+ the top-level Makefile and Make-config files. There are instructions in
+ each file.
+
+
+2. The new way:
+ Type './configure' and then 'make'. This uses GNU autoconfig.
+ See docs/INSTALL for more details.
+
+
+The top-level makefile will execute the makefiles in a number of sub-
+directories. When finished, the Mesa libraries will be in the Mesa-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:
+
+ When using the old-style Makefiles, you can specify a configuration
+ that uses X86 assembly language optimizations (linux-3dnow for example).
+
+ The detection of MMX, 3DNow!, PIII/SSE, etc capability is done at
+ runtime. That means you can compile Mesa for 3DNow! optimizations
+ even if you don't have an AMD CPU.
+
+ However, your Linux binutils and assembler must understand the
+ special instructions in order to compile them. If you have
+ compilation problems, try upgrading your binutils.
+
+
+Header and library files:
+ After you've compiled Mesa and tried the demos I recommend the following
+ procedure for "installing" Mesa.
+
+ Copy the Mesa include/GL directory to /usr/local/include:
+ cp -r include/GL /usr/local/include
+
+ Copy the Mesa library files to /usr/local/lib:
+ cp lib/* /usr/local/lib
+
+ (actually, use "cp -d" on Linux to preserve symbolic links)
+
+
+Xt/Motif widgets:
+ If you want to use Mesa or OpenGL in your Xt/Motif program you can build
+ the widgets found in either the widgets-mesa or widgets-sgi directories.
+ The former were written for Mesa and the later are the original SGI
+ widgets. Look in those directories for more information.
+
+
+Notes:
+ HP users: a Mesa user reports that the HP-UX 10.01 C compiler has
+ a bug which effects glReadPixels. A patch for the compiler (PHSS_5743) is
+ available. Otherwise be sure your compiler is version 10.13 or later.
+
+ QNX users: if you have problems running the demos try setting the
+ stack size to 200K or larger with -N200K, for example.
+
+ SunOS 5.x users: The X shared memory extension may not work
+ correctly. If Mesa prints an error message to the effect of "Shared memory
+ error" then you'll have to append the following three lines to the end of
+ your /etc/system file then reboot:
+ set shmsys:shminfo_shmmax = 0x2000000
+ set shmsys:shminfo_shmmni = 0x1000
+ set shmsys:shminfo_shmseg = 0x100
+
+
+
+Using the library
+=================
+
+Configuration options:
+ The file src/config.h has many parameters which you can adjust such
+ as maximum number of lights, clipping planes, maximum texture size,
+ etc. In particular, you may want to change DEPTH_BITS from 16 to 32
+ if a 16-bit depth buffer isn't precise enough for your application.
+
+
+Shared libraries:
+ If you compile shared libraries you may have to set an environment
+ variable to specify where the Mesa libraries are located. On Linux and
+ Sun systems for example, set the LD_LIBRARY_PATH variable to include
+ /your-dir/Mesa-2.6/lib. Otherwise, when you try to run a demo it
+ may fail with a message saying that one or more libraries couldn't be
+ found.
+
+
+Remote display of OpenGL/GLX programs:
+ As of version 1.2.3, Mesa's header files use the same GLenum and GLUenum
+ values as SGI's (and most/all other vendor's) OpenGL headers. This means
+ you can freely mix object files compiled with OpenGL or Mesa headers.
+ In fact, on systems with dynamic runtime linkers it's possible to dynam-
+ ically link with Mesa or OpenGL shared libraries at runtime, without
+ recompiling or relinking anything!
+
+ Using IRIX 5.x as an example, you can run SGI's OpenGL demos with the
+ Mesa shared libraries as follows. Let's assume you're installing Mesa
+ in /usr/local/Mesa and using the C-shell:
+ % cd /usr/local/Mesa
+ % make irix5-dso
+ % setenv _RLD_LIST "/usr/local/Mesa/lib/libGL.so:DEFAULT"
+ % /usr/demos/bin/ideas_ogl // this is a test
+
+ You can now run OpenGL executables on almost any X display! There may
+ be some problems from the fact that Mesa supports many X visual types
+ that an OpenGL client may not expect (grayscale for example). In this
+ case the application may abort, print error messages, or just behave
+ strangely. You may have to experiment with the MESA_RGB_VISUAL envi-
+ ronment variable.
+
+
+Xt/Motif Widgets:
+ Two versions of the Xt/Motif OpenGL drawing area widgets are included:
+
+ widgets-sgi/ SGI's stock widgets
+ widgets-mesa/ Mesa-tuned widgets
+
+ Look in those directories for details
+
+
+Togl:
+ Togl is an OpenGL/Mesa widget for Tcl/Tk.
+ See http://togl.sourceforge.net for more information.
+
+
+
+X Display Modes:
+ Mesa supports RGB(A) rendering into almost any X visual type and depth.
+
+ The glXChooseVisual function tries its best to pick an appropriate visual
+ for the given attribute list. However, if this doesn't suit your needs
+ you can force Mesa to use any X visual you want (any supported by your
+ X server that is) by setting the MESA_RGB_VISUAL and MESA_CI_VISUAL
+ environment variables. When an RGB visual is requested, glXChooseVisual
+ will first look if the MESA_RGB_VISUAL variable is defined. If so, it
+ will try to use the specified visual. Similarly, when a color index
+ visual is requested, glXChooseVisual will look for the MESA_CI_VISUAL
+ variable.
+
+ The format of accepted values is: <visual-class> <depth>
+ Here are some examples:
+
+ using the C-shell:
+ % setenv MESA_RGB_VISUAL "TrueColor 8" // 8-bit TrueColor
+ % setenv MESA_CI_VISUAL "PseudoColor 12" // 12-bit PseudoColor
+ % setenv MESA_RGB_VISUAL "PseudoColor 8" // 8-bit PseudoColor
+
+ using the KornShell:
+ $ export MESA_RGB_VISUAL="TrueColor 8"
+ $ export MESA_CI_VISUAL="PseudoColor 12"
+ $ export MESA_RGB_VISUAL="PseudoColor 8"
+
+
+Double buffering:
+ Mesa can use either an X Pixmap or XImage as the backbuffer when in
+ double buffer mode. Using GLX, the default is to use an XImage. The
+ MESA_BACK_BUFFER environment variable can override this. The valid
+ values for MESA_BACK_BUFFER are: Pixmap and XImage (only the first
+ letter is checked, case doesn't matter).
+
+ A pixmap is faster when drawing simple lines and polygons while an
+ XImage is faster when Mesa has to do pixel-by-pixel rendering. If you
+ need depth buffering the XImage will almost surely be faster. Exper-
+ iment with the MESA_BACK_BUFFER variable to see which is faster for
+ your application.
+
+
+Colormaps:
+ When using Mesa directly or with GLX, it's up to the application writer
+ to create a window with an appropriate colormap. The aux, tk, and GLUT
+ toolkits try to minimize colormap "flashing" by sharing colormaps when
+ possible. Specifically, if the visual and depth of the window matches
+ that of the root window, the root window's colormap will be shared by
+ the Mesa window. Otherwise, a new, private colormap will be allocated.
+
+ When sharing the root colormap, Mesa may be unable to allocate the colors
+ it needs, resulting in poor color quality. This can happen when a
+ large number of colorcells in the root colormap are already allocated.
+ To prevent colormap sharing in aux, tk and GLUT, define the environment
+ variable MESA_PRIVATE_CMAP. The value isn't significant.
+
+
+Gamma correction:
+ To compensate for the nonlinear relationship between pixel values
+ and displayed intensities, there is a gamma correction feature in
+ Mesa. Some systems, such as Silicon Graphics, support gamma
+ correction in hardware (man gamma) so you won't need to use Mesa's
+ gamma facility. Other systems, however, may need gamma adjustment
+ to produce images which look correct. If in the past you thought
+ Mesa's images were too dim, read on.
+
+ Gamma correction is controlled with the MESA_GAMMA environment
+ variable. Its value is of the form "Gr Gg Gb" or just "G" where
+ Gr is the red gamma value, Gg is the green gamma value, Gb is the
+ blue gamma value and G is one gamma value to use for all three
+ channels. Each value is a positive real number typically in the
+ range 1.0 to 2.5. The defaults are all 1.0, effectively disabling
+ gamma correction. Examples using csh:
+
+ % setenv MESA_GAMMA "2.3 2.2 2.4" // separate R,G,B values
+ % setenv MESA_GAMMA "2.0" // same gamma for R,G,B
+
+ The demos/gamma.c program may help you to determine reasonable gamma
+ value for your display. With correct gamma values, the color intensities
+ displayed in the top row (drawn by dithering) should nearly match those
+ in the bottom row (drawn as grays).
+
+ Alex De Bruyn reports that gamma values of 1.6, 1.6 and 1.9 work well
+ on HP displays using the HP-ColorRecovery technology.
+
+ Mesa implements gamma correction with a lookup table which translates
+ a "linear" pixel value to a gamma-corrected pixel value. There is a
+ small performance penalty. Gamma correction only works in RGB mode.
+ Also be aware that pixel values read back from the frame buffer will
+ not be "un-corrected" so glReadPixels may not return the same data
+ drawn with glDrawPixels.
+
+ For more information about gamma correction see:
+ http://www.inforamp.net/~poynton/notes/colour_and_gamma/GammaFAQ.html
+
+
+Overlay Planes
+
+ Overlay planes in the frame buffer are supported by Mesa but require
+ hardware and X server support. To determine if your X server has
+ overlay support you can test for the SERVER_OVERLAY_VISUALS property:
+
+ xprop -root | grep SERVER_OVERLAY_VISUALS
+
+
+HPCR glClear(GL_COLOR_BUFFER_BIT) dithering
+
+ If you set the MESA_HPCR_CLEAR environment variable then dithering
+ will be used when clearing the color buffer. This is only applicable
+ to HP systems with the HPCR (Color Recovery) system.
+
+
+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
+
+ This extension adds the GLX function:
+
+ GLXPixmap glXCreateGLXPixmapMESA( Display *dpy, XVisualInfo *visual,
+ Pixmap pixmap, Colormap cmap )
+
+ It is an alternative to the standard glXCreateGLXPixmap() function.
+ Since Mesa supports RGB rendering into any X visual, not just True-
+ Color or DirectColor, Mesa needs colormap information to convert RGB
+ values into pixel values. An X window carries this information but a
+ pixmap does not. This function associates a colormap to a GLX pixmap.
+ See the xdemos/glxpixmap.c file for an example of how to use this
+ extension.
+
+ GLX_MESA_release_buffers
+
+ Mesa associates a set of ancillary (depth, accumulation, stencil and
+ alpha) buffers with each X window it draws into. These ancillary
+ buffers are allocated for each X window the first time the X window
+ is passed to glXMakeCurrent(). Mesa, however, can't detect when an
+ X window has been destroyed in order to free the ancillary buffers.
+
+ The best it can do is to check for recently destroyed windows whenever
+ the client calls the glXCreateContext() or glXDestroyContext()
+ functions. This may not be sufficient in all situations though.
+
+ The GLX_MESA_release_buffers extension allows a client to explicitly
+ deallocate the ancillary buffers by calling glxReleaseBuffersMESA()
+ just before an X window is destroyed. For example:
+
+ #ifdef GLX_MESA_release_buffers
+ glXReleaseBuffersMESA( dpy, window );
+ #endif
+ XDestroyWindow( dpy, window );
+
+ This extension is new in Mesa 2.0.
+
+ GLX_MESA_copy_sub_buffer
+
+ This extension adds the glXCopySubBufferMESA() function. It works
+ like glXSwapBuffers() but only copies a sub-region of the window
+ instead of the whole window.
+
+ This extension is new in Mesa version 2.6
+
+
+
+Summary of X-related environment variables:
+ MESA_RGB_VISUAL - specifies the X visual and depth for RGB mode (X only)
+ MESA_CI_VISUAL - specifies the X visual and depth for CI mode (X only)
+ MESA_BACK_BUFFER - specifies how to implement the back color buffer (X only)
+ MESA_PRIVATE_CMAP - force aux/tk libraries to use private colormaps (X only)
+ MESA_GAMMA - gamma correction coefficients (X only)
+
+
+----------------------------------------------------------------------
+$Id: README.X11,v 1.1.1.1 2000/11/30 17:31:36 dawes Exp $
diff --git a/xc/extras/Mesa/docs/RELNOTES-3.1 b/xc/extras/Mesa/docs/RELNOTES-3.1
new file mode 100644
index 000000000..6980b4302
--- /dev/null
+++ b/xc/extras/Mesa/docs/RELNOTES-3.1
@@ -0,0 +1,146 @@
+
+ Mesa 3.1 release notes
+
+ PLEASE READ!!!!
+
+
+New copyright
+-------------
+
+Mesa 3.1 will be distributed under an XFree86-style copyright instead
+of the GNU LGPL.
+
+
+New directories
+---------------
+
+All documentation files are now in the docs/ directory.
+All shell scripts are now in the bin/ directory.
+
+
+New library names
+-----------------
+
+Formerly, the main Mesa library was named libMesaGL.so (or libMesaGL.a)
+and the GLU library was named libMesaGLU.so (or libMesaGLU.a).
+
+Now, the main library is named libGL.so (or libGL.a) and the GLU library
+is named libGLU.so (or libGLU.a).
+
+The change allows Mesa to be more easily substituted for OpenGL.
+Specifically, the linker/loader on some Unix-like systems won't
+allow libMesaGL.so to be used instead of libGL.so if the application
+was linked with the former.
+
+Warning: if you have another OpenGL implementation installed on your
+system (i.e. you have another OpenGL libGL.so) you'll have to be
+carefull about which library (OpenGL or Mesa) you link against. Be
+aware of -L linker flags and the value of the LD_LIBRARY_PATH environment
+variable.
+
+
+New library versioning
+----------------------
+
+Previously, the Mesa GL library was named libMesaGL.so.3.0
+To better support Linux/OpenGL standards, the Mesa GL library is now
+named libGL.so.1.2.030100 This indicates version 1.2 of the OpenGL spec
+and Mesa implementation 3.1.0
+
+In the long term this will allow better interoperability with other
+OpenGL implementations, especially on Linux. In the short term,
+OpenGL apps may have to be relinked to use the new library naming.
+
+
+
+New makefiles
+-------------
+
+The old Makefiles found in the various directories have been renamed
+to Makefile.X11 in order to prevent filename collisions with autoconfig-
+generated Makefiles.
+
+The top-level Makefile simply includes Makefile.X11
+If your top-level Makefile get's overwritten/destroyed you can restore
+it by copying Makefile.X11 to Makefile
+
+
+New extensions
+--------------
+
+GL_EXT_stencil_wrap
+ Implements two new stencil operations: GL_INCR_WRAP_EXT and
+ GL_DECR_WRAP_EXT which allow stencil increment and decrement
+ without clamping.
+
+GL_INGR_blend_func_separate
+ Allows specification of blend factors for RGB and Alpha independently.
+ (INGR = Intergraph)
+
+GL_ARB_multitexture
+ Multiple simultaneous textures. (ARB = Architecture Review Board)
+
+GL_NV_texgen_reflection
+ nVidia texgen extension for better reflection mapping.
+
+GL_PGI_misc_hints
+ Assorted transformation hints.
+
+GL_EXT_compiled_vertex_array
+ Compiled vertex arrays.
+
+GL_EXT_clip_volume_hint
+ Allows one to disable clip volume (frustum) testing.
+
+
+
+Extensions removed
+------------------
+
+GL_EXT_multitexture - obsolete in favor of GL_ARB_multitexture
+
+
+
+Config file
+-----------
+
+By default, /etc/mesa.conf will be read when Mesa starts. This
+file controls default hints, enable/disable of extensions, and
+more. See the CONFIG file for documentation.
+
+
+
+Optimizations
+-------------
+
+Keith Whitwell has contributed significant optimizations to Mesa's
+vertex transformation code. Basically, the whole transformation
+stage of Mesa has been rewritten.
+
+It's impossible to give a speedup factor. You'll just have to
+try your app and see how it performs.
+
+
+
+Device Driver changes
+---------------------
+
+A bunch of new device driver functions have been added. See src/dd.h
+Keith Harrison contributed many of them. I've been planning on adding
+a bunch of functions like these to make writing hardware drivers easier.
+More such function will probably be added in the near future.
+
+
+
+Miscellaneous
+-------------
+
+util/glstate.c has some handy functions for debugging. Basically, it
+offers a simple function for printing GL state variables. It's not
+finished yet. There's a LOT more GLenum records to be added (see the
+code). Anyone want to help?
+
+
+
+----------------------------------------------------------------------
+$Id: RELNOTES-3.1,v 1.1.1.1 2000/11/30 17:31:36 dawes Exp $
diff --git a/xc/extras/Mesa/docs/RELNOTES-3.2 b/xc/extras/Mesa/docs/RELNOTES-3.2
new file mode 100644
index 000000000..e4d4179fd
--- /dev/null
+++ b/xc/extras/Mesa/docs/RELNOTES-3.2
@@ -0,0 +1,12 @@
+
+ Mesa 3.2 release notes
+
+ PLEASE READ!!!!
+
+
+Mesa 3.2 is a stabilization of the Mesa 3.1 release. No new features
+have been added. For a list of bug fixes please read the VERSIONS file.
+
+
+----------------------------------------------------------------------
+$Id: RELNOTES-3.2,v 1.1.1.1 2000/11/30 17:31:36 dawes Exp $
diff --git a/xc/extras/Mesa/docs/RELNOTES-3.2.1 b/xc/extras/Mesa/docs/RELNOTES-3.2.1
new file mode 100644
index 000000000..9b07676b2
--- /dev/null
+++ b/xc/extras/Mesa/docs/RELNOTES-3.2.1
@@ -0,0 +1,32 @@
+
+ Mesa 3.2.1 release notes
+
+ PLEASE READ!!!!
+
+
+
+The Mesa 3.2.1 release mainly just fixes bugs since the 3.2 release.
+See the VERSIONS file for the exact list.
+
+
+
+GLU Polygon Tessellator
+-----------------------
+
+The GLU tessellator has been reverted back to the version included
+with Mesa 3.0 since it's more stable. The Mesa 3.1/3.2 tessellator
+implemented the GLU 1.3 specification but suffered from a number of
+bugs.
+
+Mesa implements GLU 1.1.
+
+Ideally, people should use the GLU 1.3 library included in SGI's
+OpenGL Sample Implementation (SI) available from
+http://oss.sgi.com/projects/ogl-sample/
+People are working to make easy-to-install Linux RPMs of the
+GLU library.
+
+
+
+----------------------------------------------------------------------
+$Id: RELNOTES-3.2.1,v 1.1.1.1 2000/11/30 17:31:37 dawes Exp $
diff --git a/xc/extras/Mesa/docs/RELNOTES-3.3 b/xc/extras/Mesa/docs/RELNOTES-3.3
new file mode 100644
index 000000000..f599be3a4
--- /dev/null
+++ b/xc/extras/Mesa/docs/RELNOTES-3.3
@@ -0,0 +1,271 @@
+
+ Mesa 3.3 release notes
+
+ July 21, 2000
+
+ PLEASE READ!!!!
+
+
+
+Introduction
+------------
+
+Mesa uses an even/odd version number scheme like the Linux kernel.
+Odd numbered versions (such as 3.3) designate new developmental releases.
+Even numbered versions (such as 3.2.1) designate stable releases.
+
+Mesa 3.3 has a undergone many internal changes since version 3.2
+and features a lot of new extensions. 3.3 is expected to be pretty
+stable, but perhaps not as stable as 3.2 which has been used by
+thousands of users over the past months.
+
+Everyone is encouraged to try Mesa 3.3. Bugs should be reported to
+the Mesa bug database on www.sourceforge.net.
+
+
+
+Header file / GLenum changes
+----------------------------
+
+The gl.h and glu.h headers now use #defines to define all GL_* tokens
+instead of C-language enums. This change improves Mesa/OpenGL
+interoperability.
+
+
+
+New API dispatch code
+---------------------
+
+The core Mesa gl* functions are now implemented with a new dispatch
+(jump table) which will allow simultaneous direct/indirect rendering.
+
+The code is found in the glapi*.[ch] files.
+
+Of interest: the actual "glFooBar" functions are generated with
+templatized code defined in glapitemp.h and included by glapi.c
+The glapitemp.h template should be reusable for all sorts of OpenGL
+projects.
+
+The new dispatch code has also optimized with x86 assembly code.
+This optimization eliminates copying the function arguments during
+dispatch.
+
+
+
+New thread support
+------------------
+
+Thread support in Mesa has been rewritten. The glthread.[ch] files
+replace mthreads.[ch]. Thread safety is always enabled (on platforms
+which support threads, that is). There is virtually no performance
+penalty for typical single-thread applications. See the glapi.c
+file for details.
+
+The Xlib driver (XMesa) is now thread-safe as well. Be sure to
+call XInitThreads() in your app first. See the xdemos/glthreads.c
+demo for an example.
+
+
+
+Make configuration changes
+--------------------------
+
+If you use the old-style (non GNU automake) method to build Mesa note
+that several of the configuration names have changed:
+
+ Old name New name
+ ------------- ----------------
+ linux-elf linux
+ linux linux-static
+ linux-386-elf linux-386
+ linux-386 linux-386-static
+ etc.
+
+
+
+New extensions
+--------------
+
+GL_ARB_transpose_matrix
+ Adds glLoadTransposeMatrixARB() and glMultTransposeMatrixARB()
+ functions.
+
+GL_ARB_texture_cube_map
+ For cube-based reflection mapping.
+
+GL_EXT_texture_add_env
+ Adds GL_ADD texture environment mode.
+ See http://www.berkelium.com/OpenGL/EXT/texture_env_add.txt
+
+GL_EXT_texture_lod_bias
+ Allows mipmapped texture blurring and sharpening.
+
+GLX_EXT_visual_rating extension
+ This extension has no effect in stand-alone Mesa (used for DRI).
+
+GL_HP_occlusion_test
+ Used for bounding box occlusion testing (see demos/occlude.c).
+
+GL_SGIX_pixel_texture / GL_SGIS_pixel_texture
+ Lets glDraw/CopyPixels draw a texture coordinate image.
+
+GL_SGI_color_matrix
+ Adds a color matrix and another set of scale and bias parameters
+ to the glDraw/CopyPixels paths.
+
+GL_SGI_color_table
+ Adds additional color tables to the glDraw/Read/CopyPixels paths.
+
+GL_EXT_histogram
+ Compute histograms for glDraw/Read/CopyPixels.
+
+GL_EXT_blend_func_separate
+ This is the same as GL_INGR_blend_func_separate.
+
+GL_ARB_texture_cube_mapping
+ 6-face cube mapping, nicer than sphere mapping
+
+GL_EXT_texture_env_combine
+ For advanced texture environment effects.
+
+
+Documentation for all these functions can be found at
+http://oss.sgi.com/projects/ogl-sample/registry/
+
+
+
+GLX_SGI_make_current_read functionality
+---------------------------------------
+
+The functionality of this extension is needed for GLX 1.3 (and required
+for the Linux/OpenGL standards base).
+
+Implementing this function required a **DEVICE DRIVER CHANGE**.
+The old SetBuffer() function has been replaced by SetReadBuffer() and
+SetDrawBuffer(). All device drivers will have to be updated because
+of this change.
+
+The new function, glXMakeContextCurrent(), in GLX 1.3 now works in Mesa.
+The xdemos/wincopy.c program demonstrates it.
+
+
+
+Image-related code changes
+--------------------------
+
+The imaging path code used by glDrawPixels, glTexImage[123]D,
+glTexSubImage[123], etc has been rewritten. It's now faster,
+uses less memory and has several bug fixes. This work was
+actually started in Mesa 3.1 with the glTexImage paths but has now
+been carried over to glDrawPixels as well.
+
+
+
+Device driver interface changes
+-------------------------------
+
+Added new functions for hardware stencil buffer support:
+ WriteStencilSpan
+ ReadStencilSpan
+ WriteStencilPixels
+ ReadStencilPixels
+
+
+Removed old depth buffer functions:
+ AllocDepthBuffer
+ DepthTestSpan
+ DepthTestPixels
+ ReadDepthSpanFloat
+ ReadDepthSpanInt
+
+
+Added new depth buffer functions:
+ WriteDepthSpan
+ ReadDepthSpan
+ WriteDepthPixels
+ ReadDepthPixels
+
+ These functions always read/write 32-bit GLuints. This will allow
+ drivers to have anywhere from 0 to 32-bit Z buffers without
+ recompiling for 16 vs 32 bits as was previously needed.
+
+
+New texture image functions
+ The entire interface for texture image specification has been updated.
+ With the new functions, it's optional for Mesa to keep an internal copy
+ of all textures. Texture download should be a lot faster when the extra
+ copy isn't made.
+
+Misc changes
+ TexEnv now takes a target argument
+ Removed UseGlobalTexturePalette (use Enable function instead)
+
+
+Also added
+ ReadPixels
+ CopyPixels
+
+
+The SetBufffer function has been replaced by SetDrawBuffer and
+SetReadBuffer functions. This lets core Mesa independently
+specify which buffer is to be used for reading and which for
+drawing.
+
+The Clear function's mask parameter has changed. Instead of
+mask being the flags specified by the user to glClear, the
+mask is now a bitmask of the DD_*_BIT flags in dd.h. Now
+multiple color buffers can be specified for clearing (ala
+glDrawBuffers). The driver's Clear function must also
+check the glColorMask glIndexMask, and glStencilMask settings
+and do the right thing. See the X/Mesa, OS/Mesa, or FX/Mesa
+drivers for examples.
+
+
+The depth buffer changes shouldn't be hard to make for existing
+drivers. In fact, it should simply the code. Be careful with
+the depthBits value passed to gl_create_context(). 1 is a bad
+value! It should normally be 0, 16, 24, or 32.
+
+
+gl_create_framebuffer() takes new arguments which explicitly tell
+core Mesa which ancillary buffers (depth, stencil, accum, alpha)
+should be implemented in software. Mesa hardware drivers should
+carefully set these flags depending on which buffers are in the
+graphics card.
+
+
+
+Internal constants
+------------------
+
+Point and line size range and granularity limits are now stored
+in the gl_constants struct, which is the Const member of GLcontext.
+The limits are initialized from values in config.h but may be
+overridden by device drivers to reflect the limits of that driver's
+hardware.
+
+Also added constants for NumAuxBuffers and SubPixelBits.
+
+
+
+OpenGL Conformance
+------------------
+
+Mesa now passes all the OpenGL 1.1 conformance tests, except for
+antialiased lines. AA lines fail on some, but not all, the tests.
+In order to fix the remaining failures, a new AA line algorithm will
+be needed (which computes coverage values for end-point fragments).
+This will be done for Mesa 3.5/3.6.
+
+
+
+OpenGL 1.2 GL_ARB_imaging subset
+--------------------------------
+
+Mesa 3.3 implements all the features of GL_ARB_imaging except for
+image convolution. This will (hopefully) be done for Mesa 3.5/3.6.
+
+
+
+----------------------------------------------------------------------
+$Id: RELNOTES-3.3,v 1.1.1.1 2000/11/30 17:31:37 dawes Exp $
diff --git a/xc/extras/Mesa/docs/RELNOTES-3.4 b/xc/extras/Mesa/docs/RELNOTES-3.4
new file mode 100644
index 000000000..5e3525470
--- /dev/null
+++ b/xc/extras/Mesa/docs/RELNOTES-3.4
@@ -0,0 +1,22 @@
+
+ Mesa 3.4 release notes
+
+ November 3, 2000
+
+ PLEASE READ!!!!
+
+
+
+Introduction
+------------
+
+Mesa uses an even/odd version number scheme like the Linux kernel.
+Odd numbered versions (such as 3.3) designate new developmental releases.
+Even numbered versions (such as 3.4) designate stable releases.
+
+Mesa 3.4 simply fixes bugs found in the Mesa 3.3 release. For details,
+see the VERSIONS file.
+
+
+----------------------------------------------------------------------
+$Id: RELNOTES-3.4,v 1.1.1.1 2000/11/30 17:31:37 dawes Exp $
diff --git a/xc/extras/Mesa/docs/VERSIONS b/xc/extras/Mesa/docs/VERSIONS
new file mode 100644
index 000000000..15deb82c5
--- /dev/null
+++ b/xc/extras/Mesa/docs/VERSIONS
@@ -0,0 +1,777 @@
+$Id: VERSIONS,v 1.1.1.1 2000/11/30 17:31:36 dawes Exp $
+
+
+Mesa Version History
+====================
+
+1.0 beta February 1995
+ Initial release
+
+1.1 beta March 4, 1995
+ Changes:
+ faster point and line drawing (2x faster)
+ more systems supported, better Makefiles
+ Renamed lib*.a files to avoid collisions
+ many small bug fixes
+ New:
+ pseudo-GLX functions added
+ new implementation of evaluators (eval2.c)
+ GLUT support
+
+1.1.1 beta March 7, 1995
+ Changes:
+ Reverted from eval2.c to eval.c due to FPE on Linux
+ more speed improvements
+ more Makefile changes
+
+1.1.2 beta March 14, 1995
+ New:
+ implementation of SGI's blending extensions
+ glXUseXFont implemented
+ added MESA_DEBUG environment variable support
+ Changes:
+ Using eval2.c again
+ more FPE-prevention checks (0-length normals are OK)
+ a few small bug fixes
+ much faster pixel logic ops!
+ faster transformation arithmetic
+
+1.1.3 beta March 31, 1995
+ New:
+ gluScaleImage() and gluBuild2DMipMaps() implemented
+ Mesa widgets for Xt/Motif
+ blendEXT demos
+ added environment variables for selecting visuals
+ Changes:
+ almost all GLUT demos work correctly now
+ faster X device driver functions
+ more bug fixes
+
+1.1.4 beta April 20, 1995
+ Bug fixes:
+ - missing #define SEEK_SET in src-tk/image.c
+ - compile glShadeModel into display lists
+ - fixed pow() domain error in src/light.c
+ - fixed "flickering bitmaps" in double buffer mode
+ - fixed tk.h and aux.h for C++
+ - state of LIGHT_MODEL_LOCAL_VIEWER was inverted
+ New features:
+ - MUCH, MUCH nicer dithering in 8-bit RGB mode
+ - updated widgets and widget demos
+ - Implemented GLXPixmap functions
+ - Added GLU 1.1 and GLX 1.1 functions
+ - Changed the X/Mesa interface API, more versatile
+ - Implemented gluPartialDisk()
+
+1.2 May 22, 1995
+ Bug fixes:
+ - IRIX 4.x makefile problem
+ - modified tk to share root colormap as needed
+ - gluLookAt normalization problem
+ - suppress Expose, NoExpose events in swapbuffers
+ - glBitmap() and glDrawPixels() clipping
+ New features:
+ - GL_BLEND, GL_MODULATE, GL_DECAL, and GL_REPLACE_EXT texture
+ modes implemented
+ - texture maps stored more efficiently
+ - texture maps can be compiled into display lists
+ - Bogdan Sikorski's GLU polygon tesselation code
+ - Linas Vepstas's sweep and extrusion library
+ - glXCreateContext()'s shareList parameter works as it's supposed to.
+ XMesaCreateContext() updated to accept a shareList parameter too.
+ - Mesa can be compiled with real OpenGL .h files
+ - MESA_BACK_BUFFER environment variable
+ - better GLX error checking
+
+1.2.1 June 22, 1995
+ Bug fixes:
+ - X/Mesa double buffer window resize crash
+ - widgets now pass PointerMotion events
+ - X/Mesa incorrect default clear color and drawing color
+ - more robust X MIT-SHM support in X/Mesa
+ - glTexImage( format=GL_LUMINANCE ) didn't work
+ - GL_LINE mode polygons with line width > 1.0 could cause a crash
+ - numerous feedback bugs
+ - glReadPixels() from depth buffer was wrong
+ - error prone depth and stencil buffer allocation
+ New features:
+ - Preliminary Microsoft Windows driver
+ - Implemented a number of missing functions: glEvalCoord[12][df]v(),
+ glGet...(), etc.
+ - Added a few missing symbols to gl.h and glu.h
+ - Faster rendering of smooth-shaded, RGBA, depth-buffered polygons.
+ - Faster rendering of lines when width=2.0
+ - Stencil-related functions now work in display lists
+ Changes:
+ - renamed aux.h as glaux.h (MS-DOS names can't start with aux)
+ - most filenames are in 8.3 format to accomodate MS-DOS
+ - use GLubytes to store arrays of colors instead of GLints
+
+1.2.2 August 2, 1995
+ New features:
+ - texture mapped points and lines
+ - NURBS! (but not 100% complete)
+ - viewports may safely extend beyond window boundaries
+ - MESA_PRIVATE_CMAP environment variable
+ - Grayscale X display support
+ - two new demos: demos/gears.c and demos/shadow.c
+ - MachTen for Macintosh configuration
+ Bug fixes:
+ - glGet*(GL_DEPTH_BITS) returned bytes, not bits
+ - point, line, and bitmap rasterization suffered from roundoff errors
+ - fixed a division by zero error in line clippping
+ - occasional wrong default background color really fixed!
+ - glDepthFunc(GL_ALWAYS) with glDepthMask(GL_FALSE) didn't work
+ - gluBuild2DMipmaps malloc problem fixed
+ - view volume clipping of smooth shaded lines resulted in bad colors
+ Changes:
+ - new visual selection method in glXChooseVisual()
+ - improved GLU quadric functions
+ - call XSync for glFinish and XFlush for glFlush
+ - glVertex() calls now use a function pointer to avoid conditionals
+ - removed contrib directory from Mesa tar file (available on ftp site)
+ - AIX shared library support
+ - Removed GLUenum type as it's not in OpenGL
+
+1.2.3 September 26, 1995
+ New features:
+ - Mesa header files now equivalent to SGI OpenGL headers
+ - Support for HP's Color Recovery dithering displays
+ - Faster vertex transformation
+ - Faster raster operations into X windows under certain conditions
+ - New configurations: HP w/ shared libs, Ultrix w/ GCC, Data General
+ - 4-bit visuals now supported
+ Bug fixes:
+ - glScissor bug fixed
+ - round-off errors in clipping lines against clip planes fixed
+ - byte swapping between hosts and display servers implemented
+ - glGetError() can be called without a current rendering context
+ - problem with accidentally culled polygons is fixed
+ - fixed some widget compilation problems
+
+1.2.4 November 17, 1995
+ New features:
+ - More speed improvements (lighting, fogging, polygon drawing)
+ - Window system and OS-independent off-screen rendering
+ - Preliminary Fortran bindings
+ - glPolygonOffsetEXT implemented
+ - glColorMask and glIndexMask now fully implemented
+ - glPixelZoom implemented
+ - display lists fully implemented
+ - gamma correction
+ - dithering in 8-bit TrueColor/DirectColor visuals
+ Changes:
+ - Improved device driver interface
+ - tk.h renamed to gltk.h to avoid conflicts with Tcl's Tk
+ - Dithering support moved from core into device driver
+ Bug fixes:
+ - glEnable/Disable( GL_LIGHTING ) didn't always take effect
+ - glReadPixels byte swapping was broken
+ - glMaterial with pname==GL_AMBIENT_AND_DIFFUSE was broken
+ - duplicate glColor4b() prototype in GL/gl.h removed
+ - stripes in wave -ci demo fixed
+ - GL_LINEAR_MIPMAP_NEAREST had wrong value
+ - bugs in HP Color Recovery support fixed
+ - fixed bug when blending lines, points, bitmaps outside of window
+
+1.2.5 November 30, 1995
+ New Features:
+ - updated MS Windows driver
+ - new implementation of StaticGray/GrayScale visual support
+ Bug fixes:
+ - pixelzooming with gamma correction or blending didn't work
+ - HP color recovery visual wasn't being picked by glXChooseVisual
+ - glClear didn't always observe glColorMask changes
+ - olympic and offset demos didn't compile on some Suns
+ - texcoord clamping wasn't correct
+ - a polygon optimization introduced an occasional sampling problem
+
+1.2.6 January 26, 1996
+ New Features:
+ - faster line and polygon rendering under certain conditions. See
+ Performance Tips 9 and 10 in README
+ - profiling
+ - lighting is a bit faster
+ - better perspective corrected texture mapping
+ - Amiga AmiWin (X11) support
+ - preliminary Linux SVGA driver
+ Changes:
+ - now using a 16-bit depth buffer, faster, smaller
+ - GL_NORMALIZE is disabled by default
+ Bug fixes:
+ - projective texture mapping
+ - fixed a memory leak in the context destroy function
+ - GL_POLYGON with less than 3 vertices caused a crash
+ - glGet*() returned wrong result for GL_INDEX_MODE
+ - reading pixels from an unmapped X window caused a BadMatch error
+
+1.2.7 March 5, 1996
+ New:
+ - faster lighting
+ - faster 16-bit TrueColor rendering on Linux
+ - faster 32-bit TrueColor rendering on Linux, HP, IBM
+ - non-depth-buffered XImage polygons are faster
+ - vertex array extension
+ - software alpha planes
+ - updated Macintosh driver
+ - new NeXT driver
+ - GLU quadric functions generate texture coordinates
+ - reflect.c demo - reflective, textured surface demo
+ Changes:
+ - gamma correction code moved into the X driver for better performance
+ Bug fixes:
+ - multiple glClipPlane()'s didn't work reliably
+ - glPolygonMode() didn't always work
+ - glCullFace( GL_FRONT_AND_BACK ) didn't work
+ - texture mapping with gamma correction was buggy
+ - floating point exceptions in texture coordinate interpolation
+ - XImage byte swapping didn't always work
+ - polygon edge flags weren't always used correctly
+
+1.2.8 May 22, 1996
+ New:
+ - overlay planes on X servers with the SERVER_OVERLAY_VISUALS property
+ - better monochrome output
+ - more IRIX 6.x configurations
+ - more robust RGB mode color allocation
+ - added MESA_XSYNC environment variable
+ - GLX_MESA_pixmap_colormap and GLX_EXT_visual_info extensions
+ - GL_MESA_window_pos extension
+ - faster glReadPixels/glDrawPixels for GL_DEPTH and GL_UNSIGNED_SHORT
+ and GL_UNSIGNED_INT
+ - driver for prototype Cirrus Mondello 3-D board
+ - updated AmigaDOS driver
+ - a few small speed optimizations in polygon rendering
+ Changes:
+ - internal device driver interface modified to simplify device
+ driver implementations and to support hardware Z buffers
+ - several changes to the X/Mesa interface (xmesa.h)
+ Bug fixes:
+ - fixed pow(0,0) domain error triggered on some systems
+ - glStencilClear() in a display list caused an infinite loop
+ - glRasterPos*() was sometimes off by +/-0.5 in X and Y
+ - color masking and blending were performed in wrong order
+ - auxSolidCylinder() sometimes drew a wire-frame cylinder
+ - fixed file writing bug in osdemo.c
+ - pixel mapping didn't always work
+ - the GL_GEQUAL stencil func didn't work
+ - the GL_INVERT stencil op didn't work
+ - the stencil write mask didn't work
+ - glPush/PopAttrib() didn't do enough error checking
+ - glIsList() didn't always work correctly
+
+2.0 October 10, 1996
+ New:
+ - Implements OpenGL 1.1 API functions
+ - all texture filtering modes supported (mipmapping)
+ - faster texture mapping, see Performance Tip 11 in README
+ - antialiased RGB points
+ - X support for line and polygon stippling
+ - glDrawBuffer( GL_FRONT_AND_BACK ) works
+ - util/ directory of useful stuff
+ - demos/texobj demo of texture objects
+ Changes:
+ - major internal changes for thread-safeness
+ - new device driver interface
+ - MESA_ALPHA env variable removed
+ - triangle rasterizer replaces polygon rasterizer
+ Bug fixes:
+ - glPopAttrib() bug
+ - glDrawBuffer(GL_NONE) works now
+
+2.1 December 14, 1996
+ New:
+ - VMS support
+ - MS-DOS driver
+ - OpenStep support
+ - updated, combined Windows 95/NT driver
+ - implemented glGetLighti() and glGetTexGen*()
+ - GLX does garbage collection of ancillary buffers
+ Bug fixes:
+ - removed unused _EXT constants from gl.h
+ - fixed polygon offset bugs
+ - Z coordinates of clipped lines were incorrect
+ - glEdgeFlag() in display lists didn't always work
+ - glLight*() in display lists didn't work
+ - fixed X line stipple bugs (Michael Pichler)
+ - glXUseXfonts XFreeFont/XFreeFontInfo bug fixed
+ - fixed a feedback bug
+ - glTexGen*() now transforms GL_EYE_PLANE by inverse modelview matrix
+ - polygons were sometimes culled instead of clipped
+ - triangle rasterizer suffered from float/int overflow exceptions
+ - fixed FP underflow exception in lighting (specular exponent)
+ - glEnable/glDisable of GL_EXT_vertex_array enums didn't work
+ - fixed free(NULL) in GLU tesselator code
+ - using 24-bit color on some X servers resulted in garbage rendering
+ - 32-bit per pixel mode for XFree86 now works
+ - glRotate(a,0,0,0) gave unpredictable results
+ - GL_LINE_STRIP with > 480 vertices had occasional clipping problems
+ - 8-bit TrueColor GLXPixmap rendering incorrectly required a colormap
+ - glMaterial() wasn't ignored when GL_COLOR_MATERIAL was enabled
+ - glEnable(GL_COLOR_MATERIAL) followed by glColor() didn't work right
+ - accumulation buffer was limited to positive values
+ - projective textures didn't work
+ - selection buffer overflows weren't handled correctly
+ Changes:
+ - restored the GL_EXT_polygon_offset extension
+ - slightly faster RGB dithering
+ - the SVGA driver works again
+ - Amiga driver now distributed separately
+ - NeXT driver updated for Mesa 2.x
+
+2.2 March 14, 1997
+ New:
+ - better color selection when dithering
+ - added GL_EXT_texture_object extension
+ - updated MS-DOS driver for DJGPP
+ - added openbsd make configuration
+ - faster dithered flat-shaded triangles
+ - various compilation problems with Motif widgets fixed
+ - gl.h, glx.h and glu.h name mangling option
+ - BeOS driver
+ - 3D texture mapping extension
+ - GL_MESA_resize_buffers extension
+ - morph3d, stex3d and spectex demos
+ - 3Dfx support
+ Bug fixes:
+ - glColorMaterial should finally work right in all respects
+ - linear interpolation of mipmap levels was incorrectly weighted
+ - readpix.c didn't compile on Macintosh
+ - GL_INVERT and related logic ops didn't work right
+ - glTexImage[12]D() didn't check its parameters consistantly
+ - fixed a memory leak in glTexImage[12]D()
+ - kludged around a SunOS 5.x/GCC compiler bug in the feedback code
+ - glReadPixels aborted instead of normally catching some errors
+ - a few 1.1 constants were missing or misnamed in gl.h
+ - glBegin(p); glBegin(q); didn't generate an error
+ - fixed a memory leak in GLX code
+ - clipping of concave polygons could cause a core dump
+ - 1-component alpha texture maps didn't work
+ - fixed a GLU polygon tesselator bug
+ - polygons with colinear vertices were sometimes culled
+ - feedback triangle colors were wrong when using smooth shading
+ - textures with borders didn't work correctly
+ - colors returned in feedback mode were wrong when using lighting
+ - spotlights didn't effect ambient lighting correctly
+ - gluPartialDisk() had a few bugs
+ Changes:
+ - device driver interface expanded to support texture mapping
+ - faster matrix inversion subroutine
+ - commented out #include "wmesa_extend.h" from src/wmesa.c
+ - fixed many compiler warnings in the demo programs
+
+2.3 June 30, 1997
+ New:
+ - Mesa distribution divided into two pieces: library code and demos
+ - faster vertex transformation, clip testing, lighting
+ - faster line drawing
+ - TrueColor visuals how have dithering (for depths < 24 bits)
+ - added MESA_NO_DITHER environment variable
+ - new device driver function: NearFar(), RenderVB(), RasterSetup()
+ - added LynxOS configuration
+ - added cygnus Win32 configuration
+ - added texcyl.c GLUT demo
+ - added XMesaDitherColor() to X/Mesa interface
+ - new NURBS code from Bogdan Sikorski
+ - added demos/shape.c (non-rectangular X window!)
+ Bug fixes:
+ - glEnable/DisableClientState() were missing from GL/gl.h
+ - GL_SPHERE_MAP texcoord generation didn't work correctly
+ - glXGetConfig() returned wrong number of depth, stencil, accum bits
+ - glDrawPixels feedback/selection didn't examine RasterPos valid bit
+ - black and white were reversed on some monochrome displays
+ - fixed potential image memory leak (wasn't setting reference counter)
+ - glDrawPixels sometimes didn't recognize some GL state changes
+ - gluProject/UnProject() didn't check for divide by zero
+ - stex3d demo called random() and srandom(), not portable
+ - fixed memory leaks in context.c and drawpix.c
+ - fixed NULL dereferencing problem in gl_update_texture_state()
+ - glReadPixels between glBegin/glEnd didn't generate an error.
+ - fixed memory leak in polygon tesselator (Randy Frank)
+ - fixed seg fault bug drawing flat-shaded, depth-tested lines
+ - clipped GL_TRIANGLE_STRIPs sometimes had wrong color when flat-shaded
+ - glBindTexture sometimes didn't work
+ - fixed a bug deep in glXReleaseBuffersMESA()
+ - fog was mistakenly applied to alpha
+ - glPopMatrix didn't set "dirty matrix" flag
+ - glPolygonStipple pattern was sometimes wrong
+ - glClear wasn't disabled during feedback and selection
+ - fixed memory leak in glTexSubImage[123]D
+ Changes:
+ - many library source files reorganized
+ - faster X color allocation, colors also freed when finished with them
+ - new texture sampling function pointer in texture objects
+ - incorporated 3Dfx VooDoo driver v0.16 into main source tree
+ - many 3Dfx driver updates
+ - cygnus Makefiles now included
+ - updated DOS driver
+ - made a few changes to dosmesa.c and wmesa.c (VB->Unclipped)
+ - internally, colors now stored in GLubytes, not GLfixed
+ - optimized changing of GL_SHININESS parameter
+
+2.4 September 18, 1997
+ New:
+ - updated 3Dfx Glide driver
+ - hacks for 3Dfx rendering into an X window or fullscreen
+ - added depth buffer access functions to X/Mesa and OS/Mesa interfaces
+ Bug fixes:
+ - pixel buffer could overflow with long, wide lines
+ - fixed FP underflow problems in lighting
+ - glTexSubImage1D() had an unitialized variable
+ - incomplete texture objects could cause a segfault
+ - glDrawPixels with GL_COMPILE_AND_EXECUTE caused infinite loop
+ - flat-shaded quads in a strip were miscolored if clipped
+ - mipmapped triangle lod computation now works correctly
+ - fixed a few under/overflow bugs in triangle rasterizer
+ - glArrayElement() assigned bad normal if normal array disabled
+ - changed argument to glXReleaseBuffersMESA()
+ - fixed small triangle underflow bugs in tritemp.h (hopefully)
+ - glBindTexture(target, 0) caused a crash
+ - glTexImage[123]D() with NULL image pointer caused crash
+ - glPixelStore parameters are now ignored during display list execution
+ - fixed a two-sided lighting w/ clipping bug (black vertices)
+ - textures with width!=height were sometimes mis-rendered
+ - "weird" projection matrices could cause div by 0, other fp errors
+ Changes:
+ - changed precompiled header symbol from PCH to PC_HEADER
+ - split api.c into api1.c and api2.c
+ - added hash.c source file (but not used yet)
+ - a few Sun and HP configuration file changes
+ - MESA_GLX_FX env var replaces MESA_FX_WINDOW and MESA_FX_FULLSCREEN
+ - fixed a few cygnus build problems (src/Makefile.cygnus, src/wmesa.c)
+
+2.5 November 20, 1997
+ New:
+ - updated 3Dfx driver (v20) for GLQuake
+ - added GL_EXT_paletted_texture extension
+ - added GL_EXT_shared_texture_palette extension
+ - added GL_EXT_point_parameters extension
+ - now including Mark Kilgard's GLUT library v3.6
+ - new GLUT-based demos in gdemos/
+ - added a few more Unix config targets
+ - added Intel X86 assembly language vertex transformation code
+ - 3Dfx/Glide driver for Mesa now recognizes SST_SCREENREFRESH env var
+ - Windows 95 S3 Virge driver
+ Bug fixes:
+ - glCopyTexImage?D would crash due to uninitialized variable
+ - glColor w/ glColorMaterial in a display list caused a bug
+ - fixed several glDrawPixels() and ReadPixels() bugs in 3Dfx driver
+ - glVertex4*() vertices weren't always projected correctly
+ - trying to use mipmapped textured points or lines caused crash
+ - glColor[34][fd]() values now clamped to [0,1] before int conversion
+ Changes:
+ - new device driver functions for texture mapping
+ - hash tables used for display list and texture object lookup
+ - fixed GLX visual handling code to avoid saving redundant visuals
+ - 3Dfx Glide libraries automatically linked to libMesaGL.so
+ - dropped the Cirrus Logic Mondello code since it's obsolete
+ - updated Cygnus Makefiles (Stephane Rehel)
+ - updated Windows MSVC++ Makefiles (Oleg Letsinsky)
+ - procedure for making library files has changed: scripts now take
+ a major and minor version arguments. Make-config changed a lot.
+ - new implementation of glTexSubImage2D()
+ - updated widgets-mesa directory to create libMesaGLwM.a (Motif widget)
+ - separate linux-glide and linux-386-glide configurations
+
+2.6 February 12, 1998
+ New:
+ - Windows WGL functions
+ - updated VMS, DOS, Windows, Cygnus, BeOS, Amiga compilation support
+ - v0.22 of 3Dfx Glide driver
+ - more X86 assembly language optimizations
+ - faster blending for some modes
+ - XMesaSetFXmode() to switch between 3Dfx window and full-screen mode
+ - added preliminary thread support
+ - added GLX_MESA_copy_sub_buffer extension
+ - some clipping optimizations
+ Bug fixes:
+ - fixed shading/material bug when drawing long primitive strips
+ - fixed clipping problem in long primitive strips
+ - fixed clipping bug when using 3Dfx driver
+ - fixed a problem when trying to use X fonts w/ 3Dfx driver
+ - fixed a texture filter bug in 3Dfx/Glide driver
+ - fixed bug in 3Dfx/Glide driver involving depth mask & clearing
+ - glLoadMatrix to set projection matrix confused the 3Dfx driver
+ - non-identity texture matrices didn't work with linux-386 configs
+ - glGenTextures() didn't reserve the returned texture IDs
+ - NULL proxy image sent to glTexImageXD() caused crash
+ - added texture state validation optimization (Henk Kok)
+ - fixed colormap reuse problem when using both RGB and CI windows
+ - 32bpp True/DirectColor X visuals weren't recognized
+ - fixed potential problem in evaluators memory allocation
+ - fixed assorted demo compilation bugs
+ Changes:
+ - replaced old Mesa/windows/ directory with Mesa/WIN32/ directory
+ - converted a few old glaux/gltk demos to GLUT
+ - renamed directories: demos -> xdemos, gdemos -> demos
+
+
+3.0 September 17, 1998
+ New:
+ - OpenGL 1.2 API
+ - GL_EXT_abgr pixel format extension
+ - GL_SGIS_texture_edge_clamp extension
+ - GL_SGIS_multitexture extension (to be replaced by GL_ARB_multitex)
+ - GL_EXT_multitexture extension (to be replaced by GL_ARB_multitex)
+ - GL_EXT_rescale_normal extension and renormal.c demo
+ - GLX_SGI_video_sync extension (a no-op)
+ - antialiased lines
+ - glGetTexImage() now implemented
+ - glDraw/Copy/ReadPixels() optimizations
+ - optimized textured triangle code (Marten Stromberg)
+ - more optimization of dithered TrueColor triangles in X driver
+ - Linux GGI driver
+ - updated MGL driver
+ Bug fixes:
+ - lots of assorted compilation fixes
+ - glInitNames didn't write initial hit record
+ - glBitmap didn't always check for invalid raster position
+ - switching between GLX and OSMesa contexts caused a crash
+ - fixed uninitialized variable in Mesa widget code
+ - fixed typo in texture code which caused book/texgen to crash
+ - fixed texture sampling bug when filter=GL_LINEAR and wrap=GL_CLAMP
+ - gluDisk() in POINT or LINE mode sometimes failed
+ - fixed texture + fog bug
+ - GL_COMPILE_AND_EXECUTE mode didn't work reliably
+ - glMultMatrix in projection matrix mode w/ 3Dfx driver could fail
+ - glDrawPixels(color index pixels) weren't converted to RGBA
+ - fixed possible getenv() buffer overflow security bug
+ - glBitmap in feedback mode was offset by xOrig, yOrig params
+ - device driver's DrawPixels hook was never used
+ - glDrawPixels with zoomY!=1 and top/bottom clipping didn't work
+ - glDrawPixels optimized for GL_LUMINANCE, GL_LUMINANCE_ALPHA, GLubyte
+ - fixed MakeCurrent bug in GLwRedrawObjects() in MesaWorkstation.c
+ - glCopyTexSubImage2D() didn't work with 3Dfx driver
+ - lines with width = 2 could cause crash
+ - glClear with scissor rect sometimes cleared whole buffer
+ - glTexSubImage2D( .. GL_COLOR_INDEX .. ) didn't work
+ - glTexImageXD( .. GL_ABGR_EXT .. ) didn't work
+ - computation of inverse modelview matrix sometimes failed
+ - fixed GL_CLAMP mode texture sampling bug
+ - textured line interpolation was somewhat broken
+ - textured triangle interpolation was also somewhat broken
+ - glGet(MODELVIEW/PROJECTION/TEXTURE_MATRIX_STACK_DEPTH) off by one
+ - evaluator state wasn't fully initialized
+ - texture coordinate clipping was buggy
+ - evaluator surfaces could be mis-colored
+ - glAccum(GL_RETURN, s) didn't obey glColorMask() settings
+ - zero area polygons shouldn't be culled if polygon mode is point/line
+ - clipped width and height of glReadPixels was sometimes off by one
+ - blending with alpha = 0 or 1.0 wasn't always exact
+ - reading of pixels from clipped region was buggy
+ - minor tweaking of X visual management in GLX emulator
+ - glPolygonStipple now obeys pixel unpacking parameters
+ - glGetPolygonStipple now obeys pixel packing parameters
+ - interleaved vertex array texture coordinates were broken
+ - query of proxy texture internal format was broken
+ - alpha channel wasn't reliably cleared
+ - fixed divide by zero error in gluScaleImage if dest size = 1 x 1
+ Conformance bug fixes:
+ - GL_SELECTION_BUFFER_POINTER and GL_SELECTION_BUFFER_SIZE were missing
+ - GL_TEXTURE_INTERNAL_FORMAT was missing
+ - glGet*(GL_POLYGON_STIPPLE) was broken
+ - glPush/PopAttrib() didn't save/restore all texture state
+ - glBitmap in feedback mode didn't work
+ - feedback of texture coords didn't always work
+ - glDrawPixels w/ format=GL_DEPTH_COMPONENT, type=GLbyte was broke
+ - glDrawPixels w/ format=GL_DEPTH_COMPONENT, type=GLubyte was broke
+ - glDrawPixels w/ format=GL_STENCIL_INDEX, type=GL_BITMAP was broke
+ Changes:
+ - upgraded GLUT to version 3.7
+ - only GL and GLU library code included in MesaLib.tar.gz
+ - GLUT and all demos now in MesaDemos.tar.gz
+ - glaux and gltk libraries removed
+ - IRIX -n32 and -64 libs go in lib32/ and lib64/ directories
+
+
+3.1 beta 1 November 19, 1998
+ New:
+ - GL_EXT_stencil_wrap extension
+ - GL_INGR_blend_func_separate extension
+ - GL_ARB_multitexture extension
+ - GL_NV_texgen_reflection extension
+ - newly optimized vertex transformation code
+ - updated GLUT 3.7 code
+ - better precision when using 32-bit Z buffer
+ - Allegro DJGPP driver
+ Bug fixes:
+ - glCopyPixels between front/back buffers didn't copy alpha correctly
+ - fixed out-of-bounds memory access in optimized 2-D texture code
+ - glPixelStorei didn't accept GL_PACK/UNPACK_IMAGE_HEIGHT parameter
+ - glGet*() didn't accept GL_MAX_3D_TEXTURE_SIZE parameter
+ - clipping of texture coordinates sometimes had bad R,Q values
+ - GL_CLAMP_TO_EDGE texture sampling was off by 0.5 texels
+ - glEdgeFlagPointer() now takes a GLvoid * instead of GLboolean *
+ - texture was sometimes applied twice with 3Dfx driver
+ - glPush/PopAttrib() fouled up texture object reference counts
+ - glDeleteLists(0, n) caused assertion failure
+ - bilinear texture sampling wasn't accurate enough
+ - glClear w/ glDepthMask(GL_FALSE) didn't work right on 3Dfx
+ - color components were reversed on big endian 32 bpp X visuals
+ Changes:
+ - removed GL_EXT_multitexture extension
+
+
+3.1 beta 2 May 24, 1999
+ New:
+ - multi-textured points and lines (mjk@nvidia.com)
+ - optimized 24bpp X rendering (bernd.paysan@gmx.de)
+ - added allegro support (bernie-t@geocities.com)
+ - cleaned-up Windows-related stuff (Ted Jump)
+ - minor stereo changes (KendallB@scitechsoft.com)
+ - new BeOS driver which implements BGLView class
+ - new Direct3D driver (see src/D3D)
+ - more efficient filled gluCylinder() function
+ - utilities: util/showbuffer.[ch] and util/glstate.[ch]
+ - fixed some IRIX compiler warnings
+ - added support for building Mesa in XFree86 with
+ SGI's GLX (kevin@precisioninsight.com)
+ Bug fixes:
+ - a variety of Windows/Mesa bug fixes (mjk@nvidia.com)
+ - packed pixel images weren't unpacked correctly
+ - patches some win32 files in GLUT (mjk@nvidia.com)
+ - glTexImage[123]D() didn't accept internalFormat == GL_COLOR_INDEX
+ - fixed lighting bug in Keith's new shading code
+ - fixed texture segfault seen in Lament screensaver
+ - fixed miscellaneous low-memory bugs
+ - glClear(GL_COLOR_BUFFER_BIT) with RGBA or CI masking was broken
+ - GL_LINEAR sampling of 3D textures was broken
+ - fixed SVR4 'cc' compiler macro problem (dawes@xfree86.org)
+ - added GL_TEXTURE_PRIORITY fix (keithh@netcomuk.co.uk)
+ - fixed wide point and wide line conformance bugs (brianp)
+ Changes:
+ - some device driver changes (see src/dd.h)
+ - new copyright on core Mesa code
+
+
+3.1 beta 3 September 17, 1999
+ New:
+ - optimized glAccum function
+ - optimized 24bpp rendering in XMesa driver
+ - GLU 1.2 polygon tessellator
+ Bug Fixes:
+ - glGetTexLevelParameter wasn't fully implemented
+ - glXUseXFont now handles multi-byte fonts
+ - glIsEnabled(GL_TEXTURE_2D / 3D) returned wrong result
+ - alpha channel of blending points, lines was sometimes incorrect
+ Changes:
+ - New library names: "libGL" instead of "libMesaGL"
+ - New library numbering: libGL.so.1.2.310
+ - New subdirectories: docs/ and bin/
+ - New Makefile-system (autoconf,automake,libtool)
+
+
+3.1 final December 14, 1999
+ New:
+ - added demos/gloss.c
+ - added xdemos/glxdpyinfo.c
+ - added GLX_ARB_get_proc_address extension
+ - rewritten glTexImage code paths (faster, less memory, bug fixes)
+ Bug Fixes:
+ - several vertex array bug fixes
+ - overlapping glCopyPixels with pixel zooming now works
+ - glXUseXFont() bitmaps were vertically shifted by one pixel
+ - glCopyPixels with pixel zooming now works
+
+
+3.2 final April 24, 2000
+ Bug fixes:
+ - fixed memcpy bugs in span.c
+ - fixed missing glEnd problem in demos/tessdemo.c
+ - fixed bug when clearing 24bpp Ximages
+ - fixed clipping problem found in Unreal Tournament
+ - fixed Loki's "ice bug" and "crazy triangles" seen in Heretic2
+ - fixed Loki's 3dfx RGB vs BGR bug
+ - fixed Loki's 3dfx smooth/flat shading bug in SoF
+ Changes:
+ - updated docs/README file
+ - use bcopy() optimizations on FreeBSD
+ - re-enabled the optimized persp_textured_triangle() function
+
+
+3.2.1 July 19, 2000
+ Bug fixes:
+ - gluBuild2DMipmaps() didn't accept GL_BGRA
+ - Fixed compile/makefile problems on IRIX
+ - fixed segfault in 3dfx driver when using GL selection/feedback
+ - no longer cull very, very tiny triangles
+ - blending w/ drawbuffer==GL_FRONT_BACK caused segfault (sw rendering)
+ - fixed Motif detection code in widgets-mesa/configure.in
+ - glColorMaterial and glMaterial updates to emissive and ambient
+ didn't always work right
+ - Specular highlights weren't always in the right place
+ - clipped GL_LINE mode polygons had interior lines appear
+ - blend term GL_ONE_MINUS_CONSTANT_ALPHA was broken
+ - GL_NICEST fog didn't always work with flat shading
+ - glRect commands in display lists were sometimes miscolored
+ - Line Z offset didn't always work
+ - fixed texgen normal vector problem (gloss's teapot)
+ - numerous GL conformance bugs fixed
+ Changes:
+ - glColorMask(false, false, false, false) handled better/faster
+ - reverted to old GLU polygon tessellator, GLU 1.1
+ - updated Win32 build files
+
+
+3.3 July 21, 2000
+ New:
+ - antialiased triangles now implemented
+ - GL_EXT_texture_env_add texture mode extension
+ - GLX 1.3 API
+ - support for separate draw/read buffers (ie GL_SGI_make_current_read)
+ - thread-safe API dispath
+ - improved glxinfo program
+ - demos/texdown program to measure texture download performance
+ - glext.h header file
+ - demos/geartrain program
+ - GL_EXT_texture_lod_bias extension
+ - demos/lodbias program
+ - further optimized glRead/DrawPixels for 16-bit TrueColor X visuals
+ - GLX_EXT_visual_rating extension (a no-op, however)
+ - GL_HP_occlusion_test extension (for X and OS/Mesa drivers)
+ - demos/occlude program
+ - GL_SGIS_pixel_texture and GL_SGIX_pixel_texture extensions
+ - demos/pixeltex program
+ - GL_SGI_color_matrix extension
+ - GL_SGI_color_table extension
+ - GL_EXT_histogram extension
+ - GL_ARB_texture_cube_map extension
+ - added xdemos/glxheads and xdemos/manywin
+ - demos/texenv.c demo
+ - GL_EXT_texture_env_combine extension (by Holger Waechtler)
+ - Xlib driver is now thread-safe (see xdemos/glthreads)
+ Bug Fixes:
+ - various GL conformance failures fixed since 3.2.1
+ Changes:
+ - gl.h now uses #defines instead of C enums for all tokens
+ - glu.h now uses #defines instead of C enums for all tokens
+ - moved programs from 3Dfx/demos/ into demos/ directory
+
+
+3.4 November 3, 2000
+ New:
+ - optimized glDrawPixels for glPixelZoom(1,-1)
+ Bug Fixes:
+ - widgets-mesa/src/*.c files were missing from 3.3 distro
+ - include/GL/mesa_wgl.h file was missing from 3.3 distro
+ - fixed some Win32 compile problems
+ - texture object priorities weren't getting initialized to 1.0
+ - glAreTexturesResident return value was wrong when using hardware
+ - glXUseXFont segfaulted when using 3dfx driver (via MESA_GLX_FX)
+ - glReadPixels with GLushort packed types was broken
+ - fixed a few bugs in the GL_EXT_texture_env_combine texture code
+ - glPush/PopAttrib(GL_ENABLE_BIT) mishandled multi-texture enables
+ - fixed some typos/bugs in the VB code
+ - glDrawPixels(GL_COLOR_INDEX) to RGB window didn't work
+ - optimized glDrawPixels paths weren't being used
+ - per-fragment fog calculation didn't work without a Z buffer
+ - improved blending accuracy, fixes Glean blendFunc test failures
+ - glPixelStore(GL_PACK/UNPACK_SKIP_IMAGES) wasn't handled correctly
+ - glXGetProcAddressARB() didn't always return the right address
+ - gluBuild[12]DMipmaps() didn't grok the GL_BGR pixel format
+ - texture matrix changes weren't always detected (GLUT projtex demo)
+ - fixed random color problem in vertex fog code
+ - fixed Glide-related bug that let Quake get a 24-bit Z buffer
+ Changes:
+ - finished internal support for compressed textures for DRI
+