Brian Paul | a518b47 | 2000-04-07 17:07:32 +0000 | [diff] [blame] | 1 | |
| 2 | Mesa 3.3 release notes |
| 3 | |
| 4 | PLEASE READ!!!! |
| 5 | |
| 6 | |
| 7 | |
| 8 | |
| 9 | Header file / GLenum changes |
| 10 | ---------------------------- |
| 11 | |
| 12 | The gl.h and glu.h headers now use #defines to define all GL_* tokens |
| 13 | instead of C-language enums. This change improves Mesa/OpenGL |
| 14 | interoperability. |
| 15 | |
| 16 | |
| 17 | |
| 18 | New API dispatch code |
| 19 | --------------------- |
| 20 | |
| 21 | The core Mesa gl* functions are now implemented with a new dispatch |
| 22 | (jump table) which will allow simultaneous direct/indirect rendering. |
| 23 | |
| 24 | The code is found in the glapi*.[ch] files. |
| 25 | |
| 26 | Of interest: the actual "glFooBar" functions are generated with |
| 27 | templatized code defined in glapitemp.h and included by glapi.c |
| 28 | The glapitemp.h template should be reusable for all sorts of OpenGL |
| 29 | projects. |
| 30 | |
| 31 | |
| 32 | New thread support |
| 33 | ------------------ |
| 34 | |
| 35 | Thread support in Mesa has been rewritten. The glthread.[ch] files |
| 36 | replace mthreads.[ch]. Thread safety is always enabled (on platforms |
| 37 | which support threads, that is). There is virtually no performance |
| 38 | penalty for typical single-thread applications. See the glapi.c |
| 39 | file for details. |
| 40 | |
| 41 | |
| 42 | |
| 43 | Make configuration changes |
| 44 | -------------------------- |
| 45 | |
| 46 | If you use the old-style (non GNU automake) method to build Mesa note |
| 47 | that several of the configuration names have changed: |
| 48 | |
| 49 | Old name New name |
| 50 | ------------- ---------------- |
| 51 | linux-elf linux |
| 52 | linux linux-static |
| 53 | linux-386-elf linux-386 |
| 54 | linux-386 linux-386-static |
| 55 | etc. |
| 56 | |
| 57 | |
| 58 | |
| 59 | New extensions |
| 60 | -------------- |
| 61 | |
Brian Paul | f2fc19d | 2000-05-22 18:46:52 +0000 | [diff] [blame] | 62 | GL_ARB_transpose_matrix |
| 63 | Adds glLoadTransposeMatrixARB() and glMultTransposeMatrixARB() |
| 64 | functions. |
Brian Paul | a518b47 | 2000-04-07 17:07:32 +0000 | [diff] [blame] | 65 | |
Brian Paul | 16541de | 2000-05-26 14:45:25 +0000 | [diff] [blame] | 66 | GL_ARB_texture_cube_map |
| 67 | For cube-based reflection mapping. |
| 68 | |
Brian Paul | a518b47 | 2000-04-07 17:07:32 +0000 | [diff] [blame] | 69 | GL_EXT_texture_add_env |
| 70 | Adds GL_ADD texture environment mode. |
| 71 | See http://www.berkelium.com/OpenGL/EXT/texture_env_add.txt |
| 72 | |
| 73 | GL_EXT_texture_lod_bias |
| 74 | Allows mipmapped texture blurring and sharpening. |
| 75 | |
| 76 | GLX_EXT_visual_rating extension |
| 77 | This extension has no effect in stand-alone Mesa (used for DRI). |
| 78 | |
| 79 | GL_HP_occlusion_test |
| 80 | Used for bounding box occlusion testing (see demos/occlude.c). |
| 81 | |
| 82 | GL_SGIX_pixel_texture / GL_SGIS_pixel_texture |
Brian Paul | 3935096 | 2000-04-08 18:58:05 +0000 | [diff] [blame] | 83 | Lets glDraw/CopyPixels draw a texture coordinate image. |
Brian Paul | a518b47 | 2000-04-07 17:07:32 +0000 | [diff] [blame] | 84 | |
Brian Paul | 3935096 | 2000-04-08 18:58:05 +0000 | [diff] [blame] | 85 | GL_SGI_color_matrix |
| 86 | Adds a color matrix and another set of scale and bias parameters |
| 87 | to the glDraw/CopyPixels paths. |
Brian Paul | a518b47 | 2000-04-07 17:07:32 +0000 | [diff] [blame] | 88 | |
Brian Paul | 0bb0c7c | 2000-04-17 15:14:33 +0000 | [diff] [blame] | 89 | GL_SGI_color_table |
| 90 | Adds additional color tables to the glDraw/Read/CopyPixels paths. |
| 91 | |
Brian Paul | ad08108 | 2000-05-04 13:50:33 +0000 | [diff] [blame] | 92 | GL_EXT_histogram |
| 93 | Compute histograms for glDraw/Read/CopyPixels. |
| 94 | |
Brian Paul | f2fc19d | 2000-05-22 18:46:52 +0000 | [diff] [blame] | 95 | GL_EXT_blend_func_separate |
| 96 | This is the same as GL_INGR_blend_func_separate. |
| 97 | |
| 98 | Documentation for all these functions can be found at |
| 99 | http://oss.sgi.com/projects/ogl-sample/registry/ |
| 100 | |
Brian Paul | 0bb0c7c | 2000-04-17 15:14:33 +0000 | [diff] [blame] | 101 | |
Brian Paul | a518b47 | 2000-04-07 17:07:32 +0000 | [diff] [blame] | 102 | |
| 103 | GLX_SGI_make_current_read functionality |
| 104 | --------------------------------------- |
| 105 | |
| 106 | The functionality of this extension is needed for GLX 1.3 (and required |
| 107 | for the Linux/OpenGL standards base). |
| 108 | |
| 109 | Implementing this function required a **DEVICE DRIVER CHANGE**. |
| 110 | The old SetBuffer() function has been replaced by SetReadBuffer() and |
| 111 | SetDrawBuffer(). All device drivers will have to be updated because |
| 112 | of this change. |
| 113 | |
| 114 | The new function, glXMakeContextCurrent(), in GLX 1.3 now works in Mesa. |
| 115 | The xdemos/wincopy.c program demonstrates it. |
| 116 | |
| 117 | |
| 118 | |
| 119 | Image-related code changes |
| 120 | -------------------------- |
| 121 | |
| 122 | The imaging path code used by glDrawPixels, glTexImage[123]D, |
| 123 | glTexSubImage[123], etc has been rewritten. It's now faster, |
| 124 | uses less memory and has several bug fixes. This work was |
| 125 | actually started in Mesa 3.1 with the glTexImage paths but has now |
| 126 | been carried over to glDrawPixels as well. |
| 127 | |
| 128 | |
| 129 | |
| 130 | Device driver interface changes |
| 131 | ------------------------------- |
| 132 | |
| 133 | Added new functions for hardware stencil buffer support: |
| 134 | WriteStencilSpan |
| 135 | ReadStencilSpan |
| 136 | WriteStencilPixels |
| 137 | ReadStencilPixels |
| 138 | |
| 139 | |
| 140 | Removed old depth buffer functions: |
| 141 | AllocDepthBuffer |
| 142 | DepthTestSpan |
| 143 | DepthTestPixels |
| 144 | ReadDepthSpanFloat |
| 145 | ReadDepthSpanInt |
| 146 | |
| 147 | |
| 148 | Added new depth buffer functions: |
| 149 | WriteDepthSpan |
| 150 | ReadDepthSpan |
| 151 | WriteDepthPixels |
| 152 | ReadDepthPixels |
| 153 | |
| 154 | These functions always read/write 32-bit GLuints. This will allow |
| 155 | drivers to have anywhere from 0 to 32-bit Z buffers without |
| 156 | recompiling for 16 vs 32 bits as was previously needed. |
| 157 | |
| 158 | |
| 159 | New texture image functions |
| 160 | The entire interface for texture image specification has been updated. |
| 161 | With the new functions, it's optional for Mesa to keep an internal copy |
| 162 | of all textures. Texture download should be a lot faster when the extra |
| 163 | copy isn't made. |
| 164 | |
| 165 | Misc changes |
| 166 | TexEnv now takes a target argument |
| 167 | Removed UseGlobalTexturePalette (use Enable function instead) |
| 168 | |
| 169 | |
| 170 | Also added |
| 171 | ReadPixels |
| 172 | CopyPixels |
| 173 | |
| 174 | |
| 175 | The SetBufffer function has been replaced by SetDrawBuffer and |
| 176 | SetReadBuffer functions. This lets core Mesa independently |
| 177 | specify which buffer is to be used for reading and which for |
| 178 | drawing. |
| 179 | |
| 180 | The Clear function's mask parameter has changed. Instead of |
| 181 | mask being the flags specified by the user to glClear, the |
| 182 | mask is now a bitmask of the DD_*_BIT flags in dd.h. Now |
| 183 | multiple color buffers can be specified for clearing (ala |
| 184 | glDrawBuffers). The driver's Clear function must also |
| 185 | check the glColorMask glIndexMask, and glStencilMask settings |
| 186 | and do the right thing. See the X/Mesa, OS/Mesa, or FX/Mesa |
| 187 | drivers for examples. |
| 188 | |
| 189 | |
| 190 | The depth buffer changes shouldn't be hard to make for existing |
| 191 | drivers. In fact, it should simply the code. Be careful with |
| 192 | the depthBits value passed to gl_create_context(). 1 is a bad |
| 193 | value! It should normally be 0, 16, 24, or 32. |
| 194 | |
| 195 | |
| 196 | gl_create_framebuffer() takes new arguments which explicitly tell |
| 197 | core Mesa which ancillary buffers (depth, stencil, accum, alpha) |
| 198 | should be implemented in software. Mesa hardware drivers should |
| 199 | carefully set these flags depending on which buffers are in the |
| 200 | graphics card. |
| 201 | |
| 202 | |
| 203 | |
| 204 | Internal constants |
| 205 | ------------------ |
| 206 | |
| 207 | Point and line size range and granularity limits are now stored |
| 208 | in the gl_constants struct, which is the Const member of GLcontext. |
| 209 | The limits are initialized from values in config.h but may be |
| 210 | overridden by device drivers to reflect the limits of that driver's |
| 211 | hardware. |
| 212 | |
| 213 | Also added constants for NumAuxBuffers and SubPixelBits. |
| 214 | |
| 215 | |
| 216 | |
| 217 | |
| 218 | ---------------------------------------------------------------------- |
Brian Paul | 16541de | 2000-05-26 14:45:25 +0000 | [diff] [blame] | 219 | $Id: RELNOTES-3.3,v 1.6 2000/05/26 14:45:25 brianp Exp $ |