added 16-bit/channel rendering info
[mesa.git] / docs / RELNOTES-3.5
1
2 Mesa 3.5 release notes
3
4 Month ??, 2001
5
6 PLEASE READ!!!!
7
8
9
10 Introduction
11 ------------
12
13 Mesa uses an even/odd version number scheme like the Linux kernel.
14 Odd numbered versions (such as 3.3) designate new developmental releases.
15 Even numbered versions (such as 3.4) designate stable releases.
16
17 The internal structure of Mesa 3.5 is (will be) changed so that it
18 is more modular. The motivation is better support of 3D hardware
19 such as T&L hardware in which much of core Mesa isn't needed.
20
21 Details to come...
22
23
24 GLU 1.3
25 -------
26
27 Mesa 3.5 includes the SGI Sample Implementation (SI) GLU library.
28 This version of GLU supports the GLU 1.3 specification. The old
29 Mesa GLU library implemented the 1.1 specification. The SI GLU
30 library should work much better.
31
32 You'll need a C++ compiler to compile the SI GLU library. This may
33 be a problem on some systems.
34
35
36
37 New Extensions
38 --------------
39
40 GL_EXT_convolution
41 Adds image convolution to glRead/Copy/DrawPixels/TexImage.
42
43 GL_ARB_imaging
44 This is the optional imaging subset of OpenGL 1.2.
45 It's the GL_EXT_convolution, GL_HP_convolution_border_modes,
46 GL_EXT_histogram, GL_EXT_color_table, GL_EXT_color_subtable
47 GL_EXT_blend_color, GL_EXT_blend_minmax, GL_EXT_blend_subtract
48 and GL_SGI_color_matrix extensions all rolled together.
49 This is supported in all software renderers but not in all
50 hardware drivers (3dfx for example).
51
52 GL_ARB_texture_compression
53 This is supported in Mesa but only used by the 3dfx DRI drivers
54 for Voodoo4 and later.
55
56 GL_ARB_texture_env_add
57 This is identical to GL_EXT_texture_env_add.
58
59 GL_NV_blend_square
60 Adds extra blend source and dest factors which allow squaring
61 of color values.
62
63 GL_EXT_fog_coord
64 Allows specification of a per-vertex fog coordinate instead of
65 having fog always computed from the eye distance.
66
67 GL_EXT_secondary_color
68 Allows specifying the secondary (specular) color for each vertex
69 instead of getting it only from lighting in GL_SEPARATE_SPECULAR_COLOR
70 mode.
71
72 GL_ARB_texture_env_combine
73 Basically the same as GL_EXT_texture_env_combine
74
75 GL_ARB_texture_env_add extension
76 Texture addition mode.
77
78 GL_ARB_texture_env_dot3 extension
79 Dot product texture environment.
80
81 GL_ARB_texture_border_clamp
82 Adds GL_CLAMP_TO_BORDER_ARB texture wrap mode
83
84 GL_SGIX_depth_texture, GL_SGIX_shadow and GL_SGIX_shadow_ambient
85 Implements a shadow casting algorithm based on depth map textures
86
87
88
89 libOSMesa.so
90 ------------
91
92 libOSMesa.so is a new library which contains the OSMesa interface for
93 off-screen rendering. Apps which need the OSMesa interface should link
94 with both -lOSMesa and -lGL. This change was made so that stand-alone
95 Mesa works the same way as XFree86/DRI's libGL.
96
97
98
99 Device Driver Changes / Core Mesa Changes
100 -----------------------------------------
101
102 The ctx->Driver.LogicOp() function has been removed. It used to
103 be called during state update in order to determine if the driver
104 could do glLogicOp() operations, and if not, set the SWLogicOpEnabled
105 flag. Drivers should instead examine the LogicOp state themselves
106 and choose specialized point, line, and triangle functions appropriately,
107 or fall back to software rendering. The Xlib driver was the only driver
108 to use this function. And since the Xlib driver no longer draws
109 points, lines or triangles using Xlib, the LogicOp function isn't needed.
110
111 The ctx->Driver.Dither() function has been removed. Drivers should
112 detect dither enable/disable via ctx->Driver.Enable() instead.
113
114 The ctx->Driver.IndexMask() and ctx->Driver.ColorMask() functions
115 are now just called from glIndexMask and glColorMask like the other
116 GL state-changing functions. They are no longer called from inside
117 gl_update_state(). Also, they now return void. The change was made
118 mostly for sake of uniformity.
119
120 The NEW_DRVSTATE[0123] flags have been removed. They weren't being used
121 and are obsolete w.r.t. the way state updates are done in DRI drivers.
122
123
124 Removed obsolete gl_create_visual() and gl_destroy_visual().
125
126 Renamed functions (new namespace):
127
128 old new
129 gl_create_framebuffer _mesa_create_framebuffer
130 gl_destroy_framebuffer _mesa_destroy_framebuffer
131 gl_create_context _mesa_create_context
132 gl_destroy_context _mesa_destroy_context
133 gl_context_initialize _mesa_context_initialize
134 gl_copy_context _mesa_copy_context
135 gl_make_current _mesa_make_current
136 gl_make_current2 _mesa_make_current2
137 gl_get_current_context _mesa_get_current_context
138 gl_flush_vb _mesa_flush_vb
139 gl_warning _mesa_warning
140 gl_compile_error _mesa_compile_error
141
142
143 All the drivers have been updated, but not all of them have been
144 tested since I can't test some platforms (DOS, Windows, Allegro, etc).
145
146
147 X/Mesa Driver
148 -------------
149
150 The source files for the X/Mesa driver in src/X have been renamed.
151 The xmesa[1234].c files are gone. The new files are xm_api.c,
152 xm_dd.c, xm_line.c, xm_span.c and xm_tri.c.
153
154
155
156 Multitexture
157 ------------
158
159 Three texture units are now supported by default. We'll allow more
160 than three texture units when we fix some bitfield issues. In at least
161 one place we have a 32-bit bitfield which is fully allocated, leaving
162 no space for texture unit #3 or higher.
163
164 The TEXTURE1_1D, TEXTURE1_2D, etc constants may go away in the future.
165 Currently, they're only used in the ctx->Texture.ReallyEnabled field.
166 This bitfield is just a conglomerate of ctx->Texture.Unit[i].ReallyEnabled
167 for all <i> texture units. ctx->Texture.ReallyEnabled may become a
168 GLboolean. Then, drivers will have to loop over the texture units to
169 examine ctx->Texture.Unit[i].ReallyEnabled.
170
171
172
173
174
175
176 OpenGL SI related changes
177 -------------------------
178
179 In an effort to make Mesa's internal interfaces more like the OpenGL
180 SI interfaces, a number of changes have been made:
181
182 1. Importing the SI's glcore.h file which defines a number of
183 interface structures like __GLimports and __GLexports.
184
185 2. Renamed "struct gl_context" to "struct __GLcontextRec".
186
187 3. Added __glCoreCreateContext() and __glCoreNopDispatch() functions.
188
189 4. The GLcontext member Visual is no longer a pointer.
190
191 5. New file: imports.c to setup default import functions for Mesa.
192
193
194
195
196 16-bit color channels
197 ---------------------
198
199 There's experimental support for 16-bit color channels (64-bit pixels)
200 in Mesa 3.5. Only the OSMesa interface can be used for 16-bit rendering.
201 Type "make linux-osmesa16" in the top-level directory to build the
202 special libOSMesa16.so library.
203
204 This hasn't been tested very thoroughly yet so please file bug reports
205 if you have trouble.
206
207 In the future I hope to implement support for 32-bit, floating point
208 color channels.
209
210 ----------------------------------------------------------------------
211 $Id: RELNOTES-3.5,v 1.12 2001/04/26 22:33:34 brianp Exp $