updated list of internal changes in 4.1
[mesa.git] / docs / RELNOTES-4.1
index ab95ea1950cbb5b92dcaf6006c6d92c1856a7f18..e88acf2a93682467a6892b97519254fc988dde7c 100644 (file)
@@ -1,7 +1,7 @@
 
                             Mesa 4.1 release notes
 
-                            <month>, <day>, 2002
+                            October, <day>, 2002
 
                                PLEASE READ!!!!
 
@@ -65,7 +65,7 @@ GL_NV_point_sprite
 
     For rendering points as textured quads.  Useful for particle effects.
 
-GL_NV_texture_rectangle
+GL_NV_texture_rectangle  (new in 4.0.4 actually)
 
     Allows one to use textures with sizes that are not powers of two.
     Note that mipmapping and several texture wrap modes are not allowed.
@@ -74,6 +74,10 @@ GL_EXT_multi_draw_arrays
 
     Allows arrays of vertex arrays to be rendered with one call.
 
+GL_EXT_stencil_two_side
+
+   Separate stencil modes for front and back-facing polygons.
+
 
 
 Device Driver Status
@@ -101,41 +105,43 @@ DOS                       needs updating
 
 
 
-Porting Information
--------------------
+New features in GLUT
+--------------------
 
-When moving from Mesa 4.0.x to Mesa 4.1 there are a number of things
-you may have to update.
+1. Frames per second printing
 
-1. _mesa_create_context() changes.  This function now takes a pointer to
-   a __GLimports object.  The __GLimports structure contains function
-   pointers to system functions like fprintf(), malloc(), etc.
-   The _mesa_init_default_imports() function can be used to initialize
-   a __GLimports object.  Most device drivers (like the DRI drivers)
-   should use this.
+   GLUT now looks for an environment variable called "GLUT_FPS".  If it's
+   set, GLUT will print out a frames/second statistic to stderr when
+   glutSwapBuffers() is called.  By default, frames/second is computed
+   and displayed once every 5 seconds.  You can specify a different
+   interval (in milliseconds) when you set the env var.  For example
+   'export GLUT_FPS=1000' or 'setenv GLUT_FPS 1000' will set the interval
+   to one second.
 
-2. more to come...
+   NOTE: the demo or application must call the glutInit() function for
+   this to work.  Otherwise, the env var will be ignored.
 
+   Finally, this feature may not be reliable in multi-window programs.
 
 
-XXX Things To Do Yet XXXX
--------------------------
+2. glutGetProcAddress() function
 
-Verify x86 code for normal transformation works with new 4-element normal
-vector arrays.  Pretty sure the SSE code is wrong.
+   The new function:
 
-Finish up NV_vertex_program support for evaluators.  Vertex arrays seem
-to work as of 4/21/2002.
+        void *glutGetProcAddress(const char *procName)
 
-Allow multiple points to be rendered into one sw_span.
+   is a wrapper for glXGetProcAddressARB() and wglGetProcAddress().  It
+   lets you dynamically get the address of an OpenGL function at runtime.
+   The GLUT_API_VERSION has been bumped to 5, but I haven't bumped the
+   GLUT version number from 3.7 since that's probably Mark Kilgard's role.
 
-improve point/line rendering speed.
+   This function should probably also be able to return the address of
+   GLUT functions themselves, but it doesn't do that yet.
 
-_tnl_end() has flushing forced on.
 
-readpixels from stencil/z should respect ctx->ReadBuffer
 
-glVertexAttrib*NV(index>15) should cause an error.
+XXX Things To Do Yet XXXX
+-------------------------
 
 isosurf with vertex program exhibits some missing triangles (probably
 when recycling the vertex buffer for long prims).
@@ -229,7 +235,44 @@ are some things to change:
      should be no confusion between current read or draw buffer anymore.
 
 
+4. _mesa_create_context() changes.  This function now takes a pointer to
+   a __GLimports object.  The __GLimports structure contains function
+   pointers to system functions like fprintf(), malloc(), etc.
+   The _mesa_init_default_imports() function can be used to initialize
+   a __GLimports object.  Most device drivers (like the DRI drivers)
+   should use this.
+
+
+5. In tnl's struct vertex_buffer, the field "ProjectedClipCoords"
+   has been replaced by "NdcPtr" to better match the OpenGL spec's
+   terminology.
+
+
+6. Since GL_EXT_stencil_two_side has been implemented, many of the
+   ctx->Stencil fields are now 2-element arrays.  For example,
+   "GLenum Ref" is now "GLenum Ref[2]"  The [0] elements are the front-face
+   values and the [1] elements are the back-face values.
+   ctx->Stencil.ActiveFace is 0 or 1 to indicate the current face for
+   the glStencilOp/Func/Mask() functions.
+   ctx->Stencil.TestTwoSide controls whether or not 1 or 2-sided stenciling
+   is enabled.
+
+
+7. Removed ctx->Polygon._OffsetAny.  Removed ctx->Polygon.OffsetMRD.
+
+
+8. GLfloat / GLchan changes:
+
+     Changed ctx->Driver.ClearColor() to take GLfloat[4] instead of GLchan[4].
+     ctx->Color.ClearColor is now GLfloat[4] too.
+     Changed ctx->Driver.AlphaRef() to take GLfloat instead of GLchan.
+     ctx->Color.AlphaRef is now GLfloat.
+     texObj->BorderColor is now GLfloat[4].  texObj->_BorderChan is GLchan[4].
+
+   This is part of an effort to remove all GLchan types from core Mesa so
+   that someday we can support 8, 16 and 32-bit color channels dynamically
+   at runtime, instead of at compile-time.
 
 
 ----------------------------------------------------------------------
-$Id: RELNOTES-4.1,v 1.13 2002/07/09 01:28:03 brianp Exp $
+$Id: RELNOTES-4.1,v 1.17 2002/10/04 19:10:27 brianp Exp $