r600g: fix typo in struct member name
[mesa.git] / docs / RELNOTES-3.5
index c53e7df5689e2ba50987a770542cd05b4002d290..b2aa1b852ead2331cae680f521e2aaa0d65608cd 100644 (file)
@@ -1,7 +1,7 @@
 
                          Mesa 3.5 release notes
 
-                             Month ??, 2000
+                             June 21, 2001
 
                              PLEASE READ!!!!
 
@@ -11,14 +11,52 @@ Introduction
 ------------
 
 Mesa uses an even/odd version number scheme like the Linux kernel.
-Odd numbered versions (such as 3.3) designate new developmental releases.
+Odd numbered versions (such as 3.5) designate new developmental releases.
 Even numbered versions (such as 3.4) designate stable releases.
 
-The internal structure of Mesa 3.5 is (will be) changed so that it
-is more modular.  The motivation is better support of 3D hardware
-such as T&L hardware in which much of core Mesa isn't needed.
+The biggest change in Mesa 3.5 is a complete overhaul of the source
+code in order to make it more modular.  This was driven by the DRI
+hardware drivers.  It simplifies the DRI drivers and opens the door
+to hardware transform/clip/lighting (TCL).  Keith Whitwell can take
+the credit for that.
 
-Details to come...
+
+
+Driver Support
+--------------
+
+The device driver interface in Mesa 3.5 has changed a lot since Mesa 3.4
+Not all of the older Mesa drivers have been updated.  Here's the status:
+
+Driver                 Status
+---------------------- -----------
+XMesa (Xlib)           updated
+OSMesa (off-screen)    updated
+FX (3dfx Voodoo1/2)    updated
+SVGA                   updated
+GGI                    not updated
+Windows/Win32          not updated
+DOS/DJGPP              not updated
+BeOS                   not updated
+Allegro                        not updated
+D3D                    not updated
+DOS                    not updated
+
+We're looking for volunteers to update the remaining drivers.  Please
+post to the Mesa3d-dev mailing list if you can help.
+
+
+
+GLU 1.3
+-------
+
+Mesa 3.5 includes the SGI Sample Implementation (SI) GLU library.
+This version of GLU supports the GLU 1.3 specification.  The old
+Mesa GLU library implemented the 1.1 specification.  The SI GLU
+library should work much better.
+
+You'll need a C++ compiler to compile the SI GLU library.  This may
+be a problem on some systems.
 
 
 
@@ -41,14 +79,55 @@ GL_ARB_texture_compression
        This is supported in Mesa but only used by the 3dfx DRI drivers
        for Voodoo4 and later.
 
+GL_ARB_texture_env_add
+       This is identical to GL_EXT_texture_env_add.
+
 GL_NV_blend_square
        Adds extra blend source and dest factors which allow squaring
        of color values.
 
+GL_EXT_fog_coord
+       Allows specification of a per-vertex fog coordinate instead of
+       having fog always computed from the eye distance.
 
+GL_EXT_secondary_color
+       Allows specifying the secondary (specular) color for each vertex
+       instead of getting it only from lighting in GL_SEPARATE_SPECULAR_COLOR
+       mode.
 
-Device Driver Changes
----------------------
+GL_ARB_texture_env_combine
+       Basically the same as GL_EXT_texture_env_combine
+
+GL_ARB_texture_env_add extension
+       Texture addition mode.
+
+GL_ARB_texture_env_dot3 extension
+       Dot product texture environment.
+
+GL_ARB_texture_border_clamp
+       Adds GL_CLAMP_TO_BORDER_ARB texture wrap mode
+
+GL_SGIX_depth_texture, GL_SGIX_shadow and GL_SGIX_shadow_ambient
+       Implements a shadow casting algorithm based on depth map textures
+
+GL_SGIS_generate_mipmap
+       Automatically generate lower mipmap images whenever the base mipmap
+       image is changed with glTexImage, glCopyTexImage, etc.
+
+
+
+libOSMesa.so
+------------
+
+libOSMesa.so is a new library which contains the OSMesa interface for
+off-screen rendering.  Apps which need the OSMesa interface should link
+with both -lOSMesa and -lGL.  This change was made so that stand-alone
+Mesa works the same way as XFree86/DRI's libGL.
+
+
+
+Device Driver Changes / Core Mesa Changes
+-----------------------------------------
 
 The ctx->Driver.LogicOp() function has been removed.  It used to
 be called during state update in order to determine if the driver
@@ -59,6 +138,8 @@ or fall back to software rendering.  The Xlib driver was the only driver
 to use this function.  And since the Xlib driver no longer draws
 points, lines or triangles using Xlib, the LogicOp function isn't needed.
 
+The ctx->Driver.Dither() function has been removed.  Drivers should
+detect dither enable/disable via ctx->Driver.Enable() instead.
 
 The ctx->Driver.IndexMask() and ctx->Driver.ColorMask() functions
 are now just called from glIndexMask and glColorMask like the other
@@ -66,7 +147,81 @@ GL state-changing functions.  They are no longer called from inside
 gl_update_state().  Also, they now return void.  The change was made
 mostly for sake of uniformity.
 
+The NEW_DRVSTATE[0123] flags have been removed.  They weren't being used
+and are obsolete w.r.t. the way state updates are done in DRI drivers.
+
+
+Removed obsolete gl_create_visual() and gl_destroy_visual().
+
+Renamed functions (new namespace):
+
+old                            new
+gl_create_framebuffer          _mesa_create_framebuffer
+gl_destroy_framebuffer         _mesa_destroy_framebuffer
+gl_create_context              _mesa_create_context
+gl_destroy_context             _mesa_destroy_context
+gl_context_initialize          _mesa_context_initialize
+gl_copy_context                        _mesa_copy_context
+gl_make_current                        _mesa_make_current
+gl_make_current2               _mesa_make_current2
+gl_get_current_context         _mesa_get_current_context
+gl_flush_vb                    _mesa_flush_vb
+gl_warning                     _mesa_warning
+gl_compile_error               _mesa_compile_error
+
+
+All the drivers have been updated, but not all of them have been
+tested since I can't test some platforms (DOS, Windows, Allegro, etc).
+
+
+X/Mesa Driver
+-------------
+
+The source files for the X/Mesa driver in src/X have been renamed.
+The xmesa[1234].c files are gone.  The new files are xm_api.c,
+xm_dd.c, xm_line.c, xm_span.c and xm_tri.c.
+
+
+
+Multitexture
+------------
+
+Eight texture units are now supported by default.
+
+
+
+OpenGL SI related changes
+-------------------------
+
+In an effort to make Mesa's internal interfaces more like the OpenGL
+SI interfaces, a number of changes have been made:
+
+1. Importing the SI's glcore.h file which defines a number of
+interface structures like __GLimports and __GLexports.
+
+2. Renamed "struct gl_context" to "struct __GLcontextRec".
+
+3. Added __glCoreCreateContext() and __glCoreNopDispatch() functions.
+
+4. The GLcontext member Visual is no longer a pointer.
+
+5. New file: imports.c to setup default import functions for Mesa.
+
+
+
+
+16-bit color channels
+---------------------
+
+There's experimental support for 16-bit color channels (64-bit pixels)
+in Mesa 3.5.  Only the OSMesa interface can be used for 16-bit rendering.
+Type "make linux-osmesa16" in the top-level directory to build the
+special libOSMesa16.so library.
+
+This hasn't been tested very thoroughly yet so please file bug reports
+if you have trouble.
 
+In the future I hope to implement support for 32-bit, floating point
+color channels.
 
 ----------------------------------------------------------------------
-$Id: RELNOTES-3.5,v 1.3 2000/09/07 15:46:05 brianp Exp $