Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

  1.  
  2.                          Mesa 3.5 release notes
  3.  
  4.                              June 21, 2001
  5.  
  6.                              PLEASE READ!!!!
  7.  
  8.  
  9.  
  10. Introduction
  11. ------------
  12.  
  13. Mesa uses an even/odd version number scheme like the Linux kernel.
  14. Odd numbered versions (such as 3.5) designate new developmental releases.
  15. Even numbered versions (such as 3.4) designate stable releases.
  16.  
  17. The biggest change in Mesa 3.5 is a complete overhaul of the source
  18. code in order to make it more modular.  This was driven by the DRI
  19. hardware drivers.  It simplifies the DRI drivers and opens the door
  20. to hardware transform/clip/lighting (TCL).  Keith Whitwell can take
  21. the credit for that.
  22.  
  23.  
  24.  
  25. Driver Support
  26. --------------
  27.  
  28. The device driver interface in Mesa 3.5 has changed a lot since Mesa 3.4
  29. Not all of the older Mesa drivers have been updated.  Here's the status:
  30.  
  31. Driver                  Status
  32. ----------------------  -----------
  33. XMesa (Xlib)            updated
  34. OSMesa (off-screen)     updated
  35. FX (3dfx Voodoo1/2)     updated
  36. SVGA                    updated
  37. GGI                     not updated
  38. Windows/Win32           not updated
  39. DOS/DJGPP               not updated
  40. BeOS                    not updated
  41. Allegro                 not updated
  42. D3D                     not updated
  43. DOS                     not updated
  44.  
  45. We're looking for volunteers to update the remaining drivers.  Please
  46. post to the Mesa3d-dev mailing list if you can help.
  47.  
  48.  
  49.  
  50. GLU 1.3
  51. -------
  52.  
  53. Mesa 3.5 includes the SGI Sample Implementation (SI) GLU library.
  54. This version of GLU supports the GLU 1.3 specification.  The old
  55. Mesa GLU library implemented the 1.1 specification.  The SI GLU
  56. library should work much better.
  57.  
  58. You'll need a C++ compiler to compile the SI GLU library.  This may
  59. be a problem on some systems.
  60.  
  61.  
  62.  
  63. New Extensions
  64. --------------
  65.  
  66. GL_EXT_convolution
  67.         Adds image convolution to glRead/Copy/DrawPixels/TexImage.
  68.  
  69. GL_ARB_imaging
  70.         This is the optional imaging subset of OpenGL 1.2.
  71.         It's the GL_EXT_convolution, GL_HP_convolution_border_modes,
  72.         GL_EXT_histogram, GL_EXT_color_table, GL_EXT_color_subtable
  73.         GL_EXT_blend_color, GL_EXT_blend_minmax, GL_EXT_blend_subtract
  74.         and GL_SGI_color_matrix extensions all rolled together.
  75.         This is supported in all software renderers but not in all
  76.         hardware drivers (3dfx for example).
  77.  
  78. GL_ARB_texture_compression
  79.         This is supported in Mesa but only used by the 3dfx DRI drivers
  80.         for Voodoo4 and later.
  81.  
  82. GL_ARB_texture_env_add
  83.         This is identical to GL_EXT_texture_env_add.
  84.  
  85. GL_NV_blend_square
  86.         Adds extra blend source and dest factors which allow squaring
  87.         of color values.
  88.  
  89. GL_EXT_fog_coord
  90.         Allows specification of a per-vertex fog coordinate instead of
  91.         having fog always computed from the eye distance.
  92.  
  93. GL_EXT_secondary_color
  94.         Allows specifying the secondary (specular) color for each vertex
  95.         instead of getting it only from lighting in GL_SEPARATE_SPECULAR_COLOR
  96.         mode.
  97.  
  98. GL_ARB_texture_env_combine
  99.         Basically the same as GL_EXT_texture_env_combine
  100.  
  101. GL_ARB_texture_env_add extension
  102.         Texture addition mode.
  103.  
  104. GL_ARB_texture_env_dot3 extension
  105.         Dot product texture environment.
  106.  
  107. GL_ARB_texture_border_clamp
  108.         Adds GL_CLAMP_TO_BORDER_ARB texture wrap mode
  109.  
  110. GL_SGIX_depth_texture, GL_SGIX_shadow and GL_SGIX_shadow_ambient
  111.         Implements a shadow casting algorithm based on depth map textures
  112.  
  113. GL_SGIS_generate_mipmap
  114.         Automatically generate lower mipmap images whenever the base mipmap
  115.         image is changed with glTexImage, glCopyTexImage, etc.
  116.  
  117.  
  118.  
  119. libOSMesa.so
  120. ------------
  121.  
  122. libOSMesa.so is a new library which contains the OSMesa interface for
  123. off-screen rendering.  Apps which need the OSMesa interface should link
  124. with both -lOSMesa and -lGL.  This change was made so that stand-alone
  125. Mesa works the same way as XFree86/DRI's libGL.
  126.  
  127.  
  128.  
  129. Device Driver Changes / Core Mesa Changes
  130. -----------------------------------------
  131.  
  132. The ctx->Driver.LogicOp() function has been removed.  It used to
  133. be called during state update in order to determine if the driver
  134. could do glLogicOp() operations, and if not, set the SWLogicOpEnabled
  135. flag.  Drivers should instead examine the LogicOp state themselves
  136. and choose specialized point, line, and triangle functions appropriately,
  137. or fall back to software rendering.  The Xlib driver was the only driver
  138. to use this function.  And since the Xlib driver no longer draws
  139. points, lines or triangles using Xlib, the LogicOp function isn't needed.
  140.  
  141. The ctx->Driver.Dither() function has been removed.  Drivers should
  142. detect dither enable/disable via ctx->Driver.Enable() instead.
  143.  
  144. The ctx->Driver.IndexMask() and ctx->Driver.ColorMask() functions
  145. are now just called from glIndexMask and glColorMask like the other
  146. GL state-changing functions.  They are no longer called from inside
  147. gl_update_state().  Also, they now return void.  The change was made
  148. mostly for sake of uniformity.
  149.  
  150. The NEW_DRVSTATE[0123] flags have been removed.  They weren't being used
  151. and are obsolete w.r.t. the way state updates are done in DRI drivers.
  152.  
  153.  
  154. Removed obsolete gl_create_visual() and gl_destroy_visual().
  155.  
  156. Renamed functions (new namespace):
  157.  
  158. old                             new
  159. gl_create_framebuffer           _mesa_create_framebuffer
  160. gl_destroy_framebuffer          _mesa_destroy_framebuffer
  161. gl_create_context               _mesa_create_context
  162. gl_destroy_context              _mesa_destroy_context
  163. gl_context_initialize           _mesa_context_initialize
  164. gl_copy_context                 _mesa_copy_context
  165. gl_make_current                 _mesa_make_current
  166. gl_make_current2                _mesa_make_current2
  167. gl_get_current_context          _mesa_get_current_context
  168. gl_flush_vb                     _mesa_flush_vb
  169. gl_warning                      _mesa_warning
  170. gl_compile_error                _mesa_compile_error
  171.  
  172.  
  173. All the drivers have been updated, but not all of them have been
  174. tested since I can't test some platforms (DOS, Windows, Allegro, etc).
  175.  
  176.  
  177. X/Mesa Driver
  178. -------------
  179.  
  180. The source files for the X/Mesa driver in src/X have been renamed.
  181. The xmesa[1234].c files are gone.  The new files are xm_api.c,
  182. xm_dd.c, xm_line.c, xm_span.c and xm_tri.c.
  183.  
  184.  
  185.  
  186. Multitexture
  187. ------------
  188.  
  189. Eight texture units are now supported by default.
  190.  
  191.  
  192.  
  193. OpenGL SI related changes
  194. -------------------------
  195.  
  196. In an effort to make Mesa's internal interfaces more like the OpenGL
  197. SI interfaces, a number of changes have been made:
  198.  
  199. 1. Importing the SI's glcore.h file which defines a number of
  200. interface structures like __GLimports and __GLexports.
  201.  
  202. 2. Renamed "struct gl_context" to "struct __GLcontextRec".
  203.  
  204. 3. Added __glCoreCreateContext() and __glCoreNopDispatch() functions.
  205.  
  206. 4. The GLcontext member Visual is no longer a pointer.
  207.  
  208. 5. New file: imports.c to setup default import functions for Mesa.
  209.  
  210.  
  211.  
  212.  
  213. 16-bit color channels
  214. ---------------------
  215.  
  216. There's experimental support for 16-bit color channels (64-bit pixels)
  217. in Mesa 3.5.  Only the OSMesa interface can be used for 16-bit rendering.
  218. Type "make linux-osmesa16" in the top-level directory to build the
  219. special libOSMesa16.so library.
  220.  
  221. This hasn't been tested very thoroughly yet so please file bug reports
  222. if you have trouble.
  223.  
  224. In the future I hope to implement support for 32-bit, floating point
  225. color channels.
  226.  
  227. ----------------------------------------------------------------------
  228.