GL_SGI_color_table info
[profile/ivi/mesa.git] / docs / RELNOTES-3.3
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
62 GL_EXT_transpose_matrix
63         Adds glLoadTransposeMatrix() and glMultTransposeMatrix() functions.
64         See http://reality.sgi.com/opengl/arb/extensions/ext_text/GL_EXT_transpose_matrix.txt
65
66 GL_EXT_texture_add_env
67         Adds GL_ADD texture environment mode.
68         See http://www.berkelium.com/OpenGL/EXT/texture_env_add.txt
69
70 GL_EXT_texture_lod_bias
71         Allows mipmapped texture blurring and sharpening.
72
73 GLX_EXT_visual_rating extension
74         This extension has no effect in stand-alone Mesa (used for DRI).
75
76 GL_HP_occlusion_test
77         Used for bounding box occlusion testing (see demos/occlude.c).
78
79 GL_SGIX_pixel_texture / GL_SGIS_pixel_texture
80         Lets glDraw/CopyPixels draw a texture coordinate image.
81
82 GL_SGI_color_matrix
83         Adds a color matrix and another set of scale and bias parameters
84         to the glDraw/CopyPixels paths.
85
86 GL_SGI_color_table
87         Adds additional color tables to the glDraw/Read/CopyPixels paths.
88
89
90
91 GLX_SGI_make_current_read functionality
92 ---------------------------------------
93
94 The functionality of this extension is needed for GLX 1.3 (and required
95 for the Linux/OpenGL standards base).
96
97 Implementing this function required a **DEVICE DRIVER CHANGE**.
98 The old SetBuffer() function has been replaced by SetReadBuffer() and
99 SetDrawBuffer().  All device drivers will have to be updated because
100 of this change.
101
102 The new function, glXMakeContextCurrent(), in GLX 1.3 now works in Mesa.
103 The xdemos/wincopy.c program demonstrates it.
104
105
106
107 Image-related code changes
108 --------------------------
109
110 The imaging path code used by glDrawPixels, glTexImage[123]D,
111 glTexSubImage[123], etc has been rewritten.  It's now faster,
112 uses less memory and has several bug fixes.  This work was
113 actually started in Mesa 3.1 with the glTexImage paths but has now
114 been carried over to glDrawPixels as well.
115
116
117
118 Device driver interface changes
119 -------------------------------
120
121 Added new functions for hardware stencil buffer support:
122    WriteStencilSpan
123    ReadStencilSpan
124    WriteStencilPixels
125    ReadStencilPixels
126
127
128 Removed old depth buffer functions:
129    AllocDepthBuffer
130    DepthTestSpan
131    DepthTestPixels
132    ReadDepthSpanFloat
133    ReadDepthSpanInt
134
135
136 Added new depth buffer functions:
137    WriteDepthSpan
138    ReadDepthSpan
139    WriteDepthPixels
140    ReadDepthPixels
141
142    These functions always read/write 32-bit GLuints.  This will allow
143    drivers to have anywhere from 0 to 32-bit Z buffers without
144    recompiling for 16 vs 32 bits as was previously needed.
145
146
147 New texture image functions
148    The entire interface for texture image specification has been updated.
149    With the new functions, it's optional for Mesa to keep an internal copy
150    of all textures.  Texture download should be a lot faster when the extra
151    copy isn't made.
152
153 Misc changes
154    TexEnv now takes a target argument
155    Removed UseGlobalTexturePalette (use Enable function instead)
156
157
158 Also added
159    ReadPixels
160    CopyPixels
161
162
163 The SetBufffer function has been replaced by SetDrawBuffer and
164 SetReadBuffer functions.  This lets core Mesa independently
165 specify which buffer is to be used for reading and which for
166 drawing.
167
168 The Clear function's mask parameter has changed.  Instead of
169 mask being the flags specified by the user to glClear, the
170 mask is now a bitmask of the DD_*_BIT flags in dd.h.  Now
171 multiple color buffers can be specified for clearing (ala
172 glDrawBuffers).  The driver's Clear function must also
173 check the glColorMask glIndexMask, and glStencilMask settings
174 and do the right thing.  See the X/Mesa, OS/Mesa, or FX/Mesa
175 drivers for examples.
176
177
178 The depth buffer changes shouldn't be hard to make for existing
179 drivers.  In fact, it should simply the code.  Be careful with
180 the depthBits value passed to gl_create_context().  1 is a bad
181 value!  It should normally be 0, 16, 24, or 32.
182
183
184 gl_create_framebuffer() takes new arguments which explicitly tell
185 core Mesa which ancillary buffers (depth, stencil, accum, alpha)
186 should be implemented in software.  Mesa hardware drivers should
187 carefully set these flags depending on which buffers are in the
188 graphics card.
189
190
191
192 Internal constants
193 ------------------
194
195 Point and line size range and granularity limits are now stored
196 in the gl_constants struct, which is the Const member of GLcontext.
197 The limits are initialized from values in config.h but may be
198 overridden by device drivers to reflect the limits of that driver's
199 hardware.
200
201 Also added constants for NumAuxBuffers and SubPixelBits.
202
203
204
205
206 ----------------------------------------------------------------------
207 $Id: RELNOTES-3.3,v 1.3 2000/04/17 15:14:33 brianp Exp $