OSDN Git Service

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