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