intro.html revision 0b27aceae2464db3dd149cf4fd667e353a655c5e
1<HTML> 2 3<TITLE>Mesa Introduction</TITLE> 4 5<BODY text="#000000" bgcolor="#55bbff"> 6 7<H1>Introduction</H1> 8 9<p> 10Mesa is a 3-D graphics library with an API which is very similar to 11that of <a href="http://www.opengl.org/" target="_parent">OpenGL</a>.* 12To the extent that Mesa utilizes the OpenGL command syntax or state 13machine, it is being used with authorization from <a 14href="http://www.sgi.com/" target="_parent">Silicon Graphics, 15Inc.</a>(SGI). However, the author does not possess an OpenGL license 16from SGI, and makes no claim that Mesa is in any way a compatible 17replacement for OpenGL or associated with SGI. Those who want a 18licensed implementation of OpenGL should contact a licensed 19vendor. 20</p> 21 22<p> 23Please do not refer to the library as <em>MesaGL</em> (for legal 24reasons). It's just <em>Mesa</em> or <em>The Mesa 3-D graphics 25library</em>. <br> 26</p> 27 28<p> 29* OpenGL is a trademark of <a href="http://www.sgi.com/" 30target="_parent">Silicon Graphics Incorporated</a>. 31</p> 32 33 34<H1>Project History</H1> 35 36<p> 37The Mesa project was founded by me, Brian Paul. Here's a short history 38of the project. 39</p> 40 41<p> 42August, 1993: I begin working on Mesa in my spare time. The project 43has no name at that point. I was simply interested in writing a simple 443D graphics library that used the then-new OpenGL API. I was partially 45inspired by the <em>VOGL</em> library which emulated a subset of IRIS GL. 46I had been programming with IRIS GL since 1991. 47</p> 48 49<p> 50November 1994: I contact SGI to ask permission to distribute my OpenGL-like 51graphics library on the internet. SGI was generally receptive to the 52idea and after negotiations with SGI's legal department, I get permission 53to release it. 54</p> 55 56<p> 57February 1995: Mesa 1.0 is released on the internet. I expected that 58a few people would be interested in it, but not thousands. 59I was soon receiving patches, new features and thank-you notes on a 60daily basis. That encouraged me to continue working on Mesa. The 61name Mesa just popped into my head one day. SGI had asked me not to use 62the terms <em>"Open"</em> or <em>"GL"</em> in the project name and I didn't 63want to make up a new acronym. Later, I heard of the Mesa programming 64language and the Mesa spreadsheet for NeXTStep. 65</p> 66 67<p> 68In the early days, OpenGL wasn't available on too many systems. 69It even took a while for SGI to support it across their product line. 70Mesa filled a big hole during that time. 71For a lot of people, Mesa was their first introduction to OpenGL. 72I think SGI recognized that Mesa actually helped to promote 73the OpenGL API, so they didn't feel threatened by the project. 74</p> 75 76 77<p> 781995-1996: I continue working on Mesa both during my spare time and during 79my work hours at the Space Science and Engineering Center at the University 80of Wisconsin in Madison. My supervisor, Bill Hibbard, lets me do this because 81Mesa is now being using for the <a href="http://www.ssec.wisc.edu/%7Ebillh/vis.html" target="_parent">Vis5D</a> project. 82</p><p> 83October 1996: Mesa 2.0 is released. It implementes the OpenGL 1.1 specification. 84</p> 85 86<p> 87March 1997: Mesa 2.2 is released. It supports the new 3dfx Voodoo graphics 88card via the Glide library. It's the first really popular hardware OpenGL 89implementation for Linux. 90</p> 91 92<p> 93September 1998: Mesa 3.0 is released. It's the first publicly-available 94implementation of the OpenGL 1.2 API. 95</p> 96 97<p> 98March 1999: I attend my first OpenGL ARB meeting. I contribute to the 99development of several official OpenGL extensions over the years. 100</p> 101 102<p> 103September 1999: I'm hired by Precision Insight, Inc. Mesa is a key 104component of 3D hardware acceleration in the new DRI project for XFree86. 105Drivers for 3dfx, 3dLabs, Intel, Matrox and ATI hardware soon follow. 106</p> 107 108<p> 109October 2001: Mesa 4.0 is released. 110It implements the OpenGL 1.3 specification. 111</p> 112 113 114<p> 115November 2001: I cofound <a href="http://www.tungstengraphics.com" target="_parent"> 116Tungsten Graphics, Inc.</a> with Keith Whitwell, Jens Owen, David Dawes and 117Frank LaMonica. 118I continue to develop Mesa as part of my resposibilities with Tungsten 119Graphics and as a spare-time project. 120</p> 121 122<p> 123November 2002: Mesa 5.0 is released. 124It implements the OpenGL 1.4 specification. 125</p> 126 127<p> 128Ongoing: Mesa is used as the core of many hardware OpenGL drivers for XFree86 129within the 130<A href="http://dri.sourceforge.net/" target="_parent">DRI project</A>. 131I continue to enhance Mesa with new extensions and features. 132</p> 133 134 135 136<H1>Major Versions</H1> 137 138<p> 139This is a summary of the major versions of Mesa. Note that Mesa's major 140version number tracks OpenGL's minor version number. 141</p> 142 143 144<H2>Version 5.x features</H2> 145<p> 146Version 5.x of Mesa implements the OpenGL 1.4 API with the following 147extensions incorporated as standard features: 148</p> 149<ul> 150<li>GL_ARB_depth_texture 151<li>GL_ARB_shadow 152<li>GL_ARB_texture_env_crossbar 153<li>GL_ARB_texture_mirror_repeat 154<li>GL_ARB_window_pos 155<li>GL_EXT_blend_color 156<li>GL_EXT_blend_func_separate 157<li>GL_EXT_blend_logic_op 158<li>GL_EXT_blend_minmax 159<li>GL_EXT_blend_subtract 160<li>GL_EXT_fog_coord 161<li>GL_EXT_multi_draw_arrays 162<li>GL_EXT_point_parameters 163<li>GL_EXT_secondary_color 164<li>GL_EXT_stencil_wrap 165<li>GL_SGIS_generate_mipmap 166</ul> 167 168 169<H2>Version 4.x features</H2> 170 171<p> 172Version 4.x of Mesa implements the OpenGL 1.3 API with the following 173extensions incorporated as standard features: 174</p> 175 176<ul> 177<li>GL_ARB_multisample 178<li>GL_ARB_multitexture 179<li>GL_ARB_texture_border_clamp 180<li>GL_ARB_texture_compression 181<li>GL_ARB_texture_cube_map 182<li>GL_ARB_texture_env_add 183<li>GL_ARB_texture_env_combine 184<li>GL_ARB_texture_env_dot3 185<li>GL_ARB_transpose_matrix 186</ul> 187 188<H2>Version 3.x features</H2> 189 190<p> 191Version 3.x of Mesa implements the OpenGL 1.2 API with the following 192features: 193</p> 194<ul> 195<li>BGR, BGRA and packed pixel formats 196<li>New texture border clamp mode 197<li>glDrawRangeElements() 198<li>standard 3-D texturing 199<li>advanced MIPMAP control 200<li>separate specular color interpolation 201</ul> 202 203 204<H2>Version 2.x features</H2> 205<p> 206Version 2.x of Mesa implements the OpenGL 1.1 API with the following 207features. 208</p> 209<ul> 210<li>Texture mapping: 211 <ul> 212 <li>glAreTexturesResident 213 <li>glBindTexture 214 <li>glCopyTexImage1D 215 <li>glCopyTexImage2D 216 <li>glCopyTexSubImage1D 217 <li>glCopyTexSubImage2D 218 <li>glDeleteTextures 219 <li>glGenTextures 220 <li>glIsTexture 221 <li>glPrioritizeTextures 222 <li>glTexSubImage1D 223 <li>glTexSubImage2D 224 </ul> 225<li>Vertex Arrays: 226 <ul> 227 <li>glArrayElement 228 <li>glColorPointer 229 <li>glDrawElements 230 <li>glEdgeFlagPointer 231 <li>glIndexPointer 232 <li>glInterleavedArrays 233 <li>glNormalPointer 234 <li>glTexCoordPointer 235 <li>glVertexPointer 236 </ul> 237<li>Client state management: 238 <ul> 239 <li>glDisableClientState 240 <li>glEnableClientState 241 <li>glPopClientAttrib 242 <li>glPushClientAttrib 243 </ul> 244<li>Misc: 245 <ul> 246 <li>glGetPointer 247 <li>glIndexub 248 <li>glIndexubv 249 <li>glPolygonOffset 250 </ul> 251</ul> 252 253 254</body> 255</html> 256