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