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