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