File: README

package info (click to toggle)
mesa 3.1-17
  • links: PTS
  • area: main
  • in suites: potato
  • size: 10,908 kB
  • ctags: 19,599
  • sloc: ansic: 132,736; asm: 10,554; sh: 9,193; cpp: 3,540; makefile: 1,377
file content (657 lines) | stat: -rw-r--r-- 25,434 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657

                                 Mesa 3.1

                     Copyright (C) 1995-1999  Brian Paul

                              www.mesa3d.org


Disclaimer
==========

Mesa is a 3-D graphics library with an API which is very similar to that
of OpenGL*.  To the extent that Mesa utilizes the OpenGL command syntax
or state machine, it is being used with authorization from Silicon Graphics,
Inc.  However, the author makes no claim that Mesa is in any way a
compatible replacement for OpenGL or associated with Silicon Graphics, Inc.
Those who want a licensed implementation of OpenGL should contact a licensed
vendor.

While Mesa is not a licensed OpenGL implementation, it is currently
being tested with the OpenGL conformance tests.  For the current
conformance status see the CONFORM file included in the Mesa distribution.

* OpenGL(R) is a registered trademark of Silicon Graphics, Inc.



Author
======

Brian Paul
brian@mesa3d.org



Copyright Information
=====================

The Mesa distribution consists of several components.  Different copyrights
apply to different components.  For example, GLUT is copyrighted by Mark
Kilgard, some demo programs are copyrighted by SGI, some of the Mesa
device drivers are copyrighted by the respective authors.

Through version 3.0, the core Mesa library has been distributed under the
GNU Library General Public License.

In Mesa 3.1 the core library will instead be released under an XFree86-
style copyright.  The copyright is being changed so that Mesa can be
integrated into the XFree86 X server in order to support 3D hardware
acceleration.  Mesa will still be a stand-alone library too.

If you have contributed code to Mesa in the past and don't want your
code included in the non-GNU LGPL version please contact Brian to
have your code removed.

See the docs/COPYRIGHT file for more information.


Introduction
============

While Mesa uses the OpenGL API and mimics its semantics, it is
important to understand that Mesa is not a real implementation of OpenGL
since it is not licensed.  That said, Mesa is still a viable alternative
to OpenGL.  Most OpenGL applications should run with Mesa without code
changes.

Since version 2.0, Mesa implements the OpenGL 1.1 API specification.
Since version 3.0, Mesa implements the OpenGL 1.2 API specification.

Only a few features are not yet implemented:

	trimmed NURBS
	polygon antialiasing


The primary design goal of this library has been correctness.  Common
code paths are optimized for speed.  If you find that a particular
rendering operation is slow let me know about it.  It may be a simple
matter to optimize the operation in question.

I've been working on this library in my spare time since August, 1993.
The core library was originally written on an Amiga using the DCC compiler.
Later, development was moved to an SGI workstation.  Current development
is done on SGI and PC/Linux systems.

Mesa works on most Unix workstations with ANSI C and X11.  There are also
drivers for Amiga, Microsoft Windows, Macintosh, MS DOS, NeXT, and BeOS
systems.  Look below for more information.

Since the OpenGL API is used, OpenGL documentation can serve as the
documentation for Mesa's core functions.  Here are a few sources:

  WWW Center:   http://www.sgi.com/Technology/openGL/
  Man pages:    http://www.digital.com:80/pub/doc/opengl/
  Spec doc:     http://www.sgi.com/Technology/openGL/glspec/glspec.html



Getting the software
====================

The primary Mesa ftp site is ftp://ftp.mesa3d.org/mesa/
See the Mesa home page for mirrors.

As of version 2.3, Mesa is distributed in two pieces:  main library code
and demos.  If you're upgrading from a previous version of Mesa or you're not
interested in the demos you can just download the core Mesa archive file.

Mesa is available in three archive formats:

1. GNU zip/tar

	Download MesaLib-3.1.tar.gz and optionally MesaDemos-3.1.tar.gz
	Unpack with:
		gzcat MesaLib-3.1.tar.gz | tar xf -
		gzcat MesaDemos-3.1.tar.gz | tar xf -
	or,
		gunzip MesaLib-3.1.tar.gz ; tar xf MesaLib-3.1.tar
		gunzip MesaDemos-3.1.tar.gz ; tar xf MesaLib-3.1.tar
	or,
		tar zxf MesaLib-3.1.tar.gz
		tar zxf MesaDemos-3.1.tar.gz

	If you don't have gzcat try zcat instead.

2. Unix compressed/tar

	Download MesaLib-3.1.tar.Z and optionally MesaDemos-3.1.tar.Z
	Unpack with:
		zcat MesaLib-3.1.tar.Z | tar xf -
		zcat MesaDemos-3.1.tar.Z | tar xf -

3. ZIP format

	Download MesaLib-3.1.zip and optionally MesaDemos-3.1.zip
	Unpack with:
		unzip MesaLib-3.1.zip
		unzip MesaDemos-3.1.zip


After unpacking you'll have these files (and more):

docs/README	- this file
docs/README.*	- detailed information for specific OS/hardware systems
docs/COPYRIGHT	- copyright info
docs/VERSIONS	- version history
docs/RELNOTES	- release notes for the new version
docs/CONFORM	- results of conformance testing
Makefile.X11	- "old" top-level Makefile for X11-based systems
Make-config	- "old" system configurations used by the Makefiles
bin/mklib.*	- shell scripts for making shared libraries for some systems
include/	- client include files
lib/		- client libraries, created during installation
src/		- source code for core library
src-glu/	- source code for utility library
util/		- handly utility functions
widgets-mesa/	- Mesa widgets for Xt/Motif
widgets-sgi/	- SGI OpenGL widgets for Xt/Motif

and if you downloaded and unpacked the demos:

src-glut/	- source code for GLUT toolkit
demos/		- GLUT demos
xdemos/		- X11 and SVGA demo programs
samples/	- sample OpenGL programs from SGI
book/		- example programs from the OpenGL Programming Guide,
		  converted to GLUT by Mark Kilgard, from GLUT distribution.
3Dfx/		- 3Dfx demos and tests
mtdemos/	- multi-threading demos


Other Mesa-related stuff is at  ftp://ftp.mesa3d.org/mesa/contrib/



GLUT
====

Mesa 2.5 and later includes Mark Kilgard's GLUT library (GL Utility Toolkit).
GLUT is built automatically on systems which support it.

The GLUT tests, demos, examples, etc are not included, just the main library.
To obtain the latest complete release of GLUT please visit
http://reality.sgi.com/employees/mjk_asd/glut3/glut3.html



Compiling and Installation
==========================

See the INSTALL file for instructions.



Compile-time configuration options
==================================
   The file src/config.h has many parameters which you can adjust such
   as maximum number of lights, clipping planes, maximum texture size,
   etc.  In particular, you may want to change DEPTH_BITS from 16 to 32
   if a 16-bit depth buffer isn't precise enough for your application.
   After changing config.h you must recompile Mesa.



Using the Library
=================

Performance Tips for software rendering:
   1. Turn off smooth shading when you don't need it (glShadeModel)
   2. Turn off depth buffering when you don't need it.
   3. Turn off dithering when not needed.
   4. Use double buffering as it's often faster than single buffering
   5. Compile in the X Shared Memory extension option if it's supported
      on your system by adding -DSHM to CFLAGS and -lXext to XLIBS for
      your system in the Make-config file.
   6. Recompile Mesa with more optimization if possible.
   7. Try to maximize the amount of drawing done between glBegin/glEnd pairs.
   8. Use the MESA_BACK_BUFFER variable to find best performance in double
      buffered mode.  (X users only)
   9. Optimized polygon rasterizers are employed when:
         rendering into back buffer which is an XImage
         RGB mode, not grayscale, not monochrome
         depth buffering is GL_LESS, or disabled
         flat or smooth shading
         dithered or non-dithered
         no other rasterization operations enabled (blending, stencil, etc)
  10. Optimized line drawing is employed when:
         rendering into back buffer which is an XImage
         RGB mode, not grayscale, not monochrome
         depth buffering is GL_LESS or disabled
         flat shading
         dithered or non-dithered
         no other rasterization operations enabled (blending, stencil, etc)
  11. Textured polygons are fastest when:
         using a 3-component (RGB), 2-D texture
         minification and magnification filters are GL_NEAREST
         texture coordinate wrap modes for S and T are GL_REPEAT
         GL_DECAL environment mode
         glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST )
         depth buffering is GL_LESS or disabled
  12. Lighting is fastest when:
         Two-sided lighting is disabled
         GL_LIGHT_MODEL_LOCAL_VIEWER is false
         GL_COLOR_MATERIAL is disabled
         No spot lights are used (all GL_SPOT_CUTOFFs are 180.0)
         No local lights are used (all position W's are 0.0)
         All material and light coefficients are >= zero
  13. XFree86 users:  if you want to use 24-bit color try starting your
      X server in 32-bit per pixel mode for better performance.  That is,
      start your X server with
         startx -- -bpp 32
      instead of
         startx -- -bpp 24
  14. Try disabling dithering with the MESA_NO_DITHER environment variable.
      If this env var is defined Mesa will disable dithering and the
      command glEnable(GL_DITHER) will be ignored.


Debugging:
   Normally Mesa records but does not notify the user of errors.  It is up
   to the application to call glGetError to check for errors.  Mesa supports
   an environment variable, MESA_DEBUG, to help with debugging.  If MESA_DEBUG
   is defined, a message will be printed to stdout whenever an error occurs.

   More extensive error checking is done when Mesa is compiled with the
   DEBUG symbol defined.  You'll have to edit the Make-config file and
   add -DDEBUG to the CFLAGS line for your system configuration.  You may
   also want to replace any optimization flags with the -g flag so you can
   use your debugger.  After you've edited Make-config type 'make clean'
   before recompiling.

   In your debugger you can set a breakpoint in gl_error() to trap Mesa
   errors.

   There is a display list printing/debugging facility.  See the end of
   src/dlist.c for details.


Fortran bindings:
   Fortan bindings are no longer included with Mesa.  William F. Mitchell
   (william.mitchell@nist.gov) has developed a new set of Mesa/OpenGL and
   GLUT bindings for Fortran.  See http://math.nist.gov/f90gl for more
   information.


Off-screen rendering:
   Mesa 1.2.4 introduced off-screen rendering, a facility for generating
   3-D imagery without having to open a window on your display.  Mesa's
   simple off-screen rendering interface is completely operating system
   and window system independent so programs which use off-screen rendering
   should be very portable.  This new feature effectively enables you to
   use Mesa as an off-line, batch-oriented renderer.

   The "OSMesa" API provides 3 functions for making off-screen renderings:
   OSMesaCreateContext(), OSMesaMakeCurrent(), and OSMesaDestroyContext().
   See the Mesa/include/GL/osmesa.h header for more information.  See the
   demos/osdemo.c file for an example program.   There is no facility for
   writing images to files.

   If you want to generate large images (larger than 1280x1024) you'll
   have to edit the src/config.h file to change MAX_WIDTH and MAX_HEIGHT
   then recompile Mesa.  Image size should only be limited by available
   memory.


Profiling: [this may no longer work in Mesa 3.1]
   Mesa 1.2.6 introduced a simple profiling facility.  It counts and
   measures the time spent in a number of important rendering operations
   and prints the information in a report before your program exits.

   By default, profiling is disabled.  To enable it, add -DPROFILE to
   the appropriate CFLAGS entry in the Make-config file, then recompile
   Mesa.  In general, you should only enable profiling during program
   development to gain insight into Mesa's performance.  Mesa runs a bit
   slower when profiling is enabled because it requires frequent polling
   of the system clock.

   The profiling report will be printed when glXDestroyContext is called
   _if_ the MESA_PROFILE environment variable is set.  You must be sure
   glXDestroyContext is called before exiting to get the profile report.
   The report will be printed to stdout and includes:

      glBegin/glEnd - number of glBegin/glEnd pairs called, total time,
         and rate in pairs/second.
      vertexes transformed - number of vertices transformed, lit, clip-
         tested, fogged, and mapped to window coordinates, total time,
         and rate in vertexes/second.
      points rasterized - number of points drawn, time, and rate.
      lines rasterized - number of lines drawn, time, and rate.
      polygons rasterized - number of polygons drawn, time and rate.
      overhead - time between glBegin/glEnd not accounted for by vertexes,
         points, lines, and polygons.  This is time spent executing
         glVertex, glNormal, glColor, etc, clipping, primitive assembly,
         and user code between glBegin/glEnd.
      glClear - number of glClears executed, total time and clears/second.
      SwapBuffers - number of swaps executed, total time and swaps/second.

   Note that the real point, line, and polygon rates should be computed by
      adding in the vertex transformation and overhead time factors.


Linux SVGA driver:
   Mesa 1.2.6 has a preliminary Linux SVGA driver for Mesa.  It's based
   on the SVGA library included with Linux.  The driver isn't finished
   yet.  I'm not too familiar with SVGA graphics so I could use some help
   finishing it.  Contact Brian if you want to help.

   To enable the SVGA driver, edit the Make-config file and add -DSVGA to
   the CFLAGS for Linux and add -lvga to the LIBS variable.  There are
   several test programs (vtest.c, vgears.c, vindex.c) in the demos
   directory.  See the include/GL/svgamesa.h and src/svgamesa.c files for
   more information about the driver.


Extensions:
   See the include/GL/gl.h header for a list of supported extensions
   (search for "Compile-time tests".  Documentation for extensions can
   be found at www.opengl.org.

   There are a few Mesa-specific extensions:

   GL_MESA_window_pos

      This extension adds the glWindowPos*MESA() functions.  These functions
      are convenient alternatives to glRasterPos*() because they set the
      current raster position to a specific window coordinate, bypassing the
      usual modelview, projection and viewport transformations.  This is
      especially useful for setting the position for glDrawPixels() or
      glBitmap() to a specific window coordinate.

      X and Y parameters (positive and negative) are directly mapped to
      window coordinates.  Z is a depth value clamped to the range [0,1].
      W is directly mapped.  The current raster position valid flag is
      always set to true.  The current raster distance is set to zero.
      The current raster color and texture coordinate are updated in the
      same manner as glRasterPos().  In selection mode a hit record is
      always generated.

      Programs using OpenGL, not Mesa, may also use the glWindowPos*MESA()
      functions by including winpos.h from the src directory and by
      compiling and linking with the winpos.c file from the src directory.

   GL_MESA_resize_buffers

      This extension adds the glResizeBuffersMESA() function.  When this
      function is called, Mesa checks if the color buffer (window) has
      been resized.  If it has, Mesa reallocates the ancillary (depth,
      stencil, accum) buffers.

      Normally, Mesa checks for window size changes whenever glViewport()
      is called.  In some applications it may not be appropriate to call
      glViewport() when the window is resized.  Such applications should
      call glResizeBuffersMESA() instead so the ancillary buffers are
      correctly updated.

      This extension is new in version 2.2.


Runtime Configuration File:
   See the CONFIG file for information on how to setup a Mesa config file.


Version 2.x features:
   Version 2.x of Mesa implements the OpenGL 1.1 API with the following
   new features.

   Texture mapping:
	glAreTexturesResident
	glBindTexture
	glCopyTexImage1D
	glCopyTexImage2D
	glCopyTexSubImage1D
	glCopyTexSubImage2D
	glDeleteTextures
	glGenTextures
	glIsTexture
	glPrioritizeTextures
	glTexSubImage1D
	glTexSubImage2D

   Vertex Arrays:
	glArrayElement
	glColorPointer
	glDrawElements
	glEdgeFlagPointer
	glIndexPointer
	glInterleavedArrays
	glNormalPointer
	glTexCoordPointer
	glVertexPointer

   Client state management:
	glDisableClientState
	glEnableClientState
	glPopClientAttrib
	glPushClientAttrib

   Misc:
	glGetPointer
	glIndexub
	glIndexubv
	glPolygonOffset


Version 3.x features:
   Version 3.x of Mesa implements the OpenGL 1.2 API with the following
   new features:

   BGR, BGRA and packed pixel formats
   New texture border clamp mode
   glDrawRangeElements()
   standard 3-D texturing
   advanced MIPMAP control
   separate specular color interpolation


Summary of environment variables:
   MESA_DEBUG - if defined, error messages are printed to stderr
   MESA_NO_DITHER - disable dithering, overriding glEnable(GL_DITHER)
   MESA_RGB_VISUAL - specifies the X visual and depth for RGB mode (X only)
   MESA_CI_VISUAL - specifies the X visual and depth for CI mode (X only)
   MESA_BACK_BUFFER - specifies how to implement the back color buffer (X only)
   MESA_PRIVATE_CMAP - force aux/tk libraries to use private colormaps (X only)
   MESA_GAMMA - gamma correction coefficients (X only)
   MESA_PROFILE - enable reporting of performance measurements
   MESA_XSYNC - enable synchronous X behavior (for X debugging only)
   MESA_INFO - if defined, print Mesa version, vendor, extension, etc info


Mailing List
============

There is a Mesa mailing list.  Its purpose is to let Mesa users exchange
any ideas, questions, and/or problems they have.  To subscribe, send the
following message to the address mesa-request@iqm.unicamp.br

    add yourname@your.internet.address mesa

For example:

    add brian_paul@mesa3d.org mesa

You will receive a welcome message from the list server when you have been
added to the list.

To unsubscribe from the list send the following message to
mesa-request@iqm.unicamp.br

    del yourname@your.internet.address mesa

Thanks to Pedro Vazquez (vazquez@iqm.unicamp.br) for setting up and
maintaing the list.



Contributed code
================

There is a contrib/ subdirectory on the Mesa ftp site which contains
contributions from Mesa users.  See the README file in that directory for
more information.

Anyone is welcome to contribute code to the Mesa project, provided you
agree to the copyright of the relevant code.

If you're contribution code to the Mesa library itself:
   1. Try to write clean code (uniform indentation, comments, meaningful
      identifiers, etc).  It must be readable and maintainable!
   2. Test your code.  On several occations I've incorporated code from
      users which later turned out to have bugs.  Now, I'm pretty hesitant
      to use code which doesn't look good.




Reporting Bugs
==============

If you think you've found a bug in Mesa first check if a newer version of
Mesa is available from the web page at www.mesa3d.org.
if a patch for your bug is there.  Otherwise, report the problem.

Since many people have contributed code to Mesa it's important that you
report a bug to the right person:

Area			Contact
----------------------	-------------------------------------------
GLU polygon tessellator	Bogdan Sikorski  bogdan@cira.it
GLU NURBS		Bogdan Sikorski  bogdan@cira.it
Evaluators		Bernd Barsuhn  bernd@berlin.muc.de
Xt/Motif widgets	Thorsten Ohl  ohl@crunch.ikp.physik.th-darmstadt.de
			  and Jeroen van der Zijp  jvz@cyberia.cfdrc.com
Fortran bindings	William Mitchell  william.mitchell@nist.gov
Amiga driver		Stefan Zivkovic  d94sz@efd.lth.se
Amiwin driver		Victor Ng-Thow-Hing  victorng@dgp.toronto.edu
Macintosh driver	Miklos Fazekas  boga@augusta.elte.hu
NeXT driver		Pascal Thibaudeau pthibaud@frbdx11.cribx1.u-bordeaux.fr
OS/2 driver		Darren Abbott  abbott@hiwaay.net
VMS support		Jouk Jansen  joukj@crys.chem.uva.nl
Windows 95/NT driver	Theodore A. Jump  tjump@spgs.com
MS-DOS driver		Charlie Wallace  cwallace@dreamworks.com
BeOS driver		Tinic Uro  5uro@informatik.uni-hamburg.de
GLX encoder/decoder	Steven Parker  sparker@taz.cs.utah.edu
3Dfx driver		David Bucciarelli  davibu@tin.it
SciTech MGL driver	Kendall Bennett  KendallB@scitechsoft.com
Cygnus Win32 support	No maintainer.  Any volunteers?
S3 Virge driver		rkoduri@s3.com or pcgamedev@s3.com
Multithreading work	John Stone  johns@umr.edu
Allegro DJGPP driver	Bernhard Tschirren  bernie-t@geocities.com
Direct3D driver		Leigh McRae  leigh@altsoftware.com
GGI driver		Jon Taylor  jtaylor@creaf.com
Mailing list help	Pedro Vazquez  vazquez@iqm.unicamp.br

EVERYTHING ELSE-->	mesa-bugs@mesa3d.org

Feel free to cc mesa-bugs@mesa3d.org on messages sent to anyone listed above.
None of the people on this list are under any obligation to respond to bug
reports.  However, they have been pretty helpful so far.

When you report a bug please give as much information as possible including
your hardware/software environment, which version of Mesa you're using, how
to reproduce the problem, and if possible, a test program.



Known Bugs
==========

1. Evaluator automatic normal vectors are miscalculated under certain
   conditions.

2. Mesa doesn't work too well on Crays.  The problem is that Crays do not
   have the exact C data type sizes which Mesa's X driver relies on.  Better
   Cray support may or may not be seen in the future.

3. gluCylinder, and probably other GLU quadrics, don't generate texture
   coordinates when drawing in point or line mode.

4. NURBS code does not copy user supplied data as it should; it just
   stores pointers to that data. For the moment all data must be valid and
   available utill the gluEndSurface() or the gluEndCurve() call.



Why is it the library called Mesa?
==================================

Why not?  More obvious names were considered but had to be rejected:
FreeGL (too similar to the trademarked name OpenGL), Free3D (too similar
to DEC's Open3D).  Also, I'm tired of acronyms.



Contributors
============

Many people have contributed to Mesa.  I really appreciate the help!
Among the contributors are:

Erich Stefan Boleyn - for the glRotate code and testing early Mesa
Joe Kiniry, Kendall Bennett - for opinions and discussion
Marc Buffat - for the gluProject and gluUnproject functions
Bernd Barsuhn, Volker Weiss - for the new implementation of evaluators
Philip Brown - for the initial GLX, GLUT implementation
Thorsten Ohl - for glXUseXFont() and glBitmap bug fixes
Thomas Malik - for new invert_matrix and other xform.c code
Michael Pichler - for X colormap code and numerous bug reports/fixes
Thorsten Ohl, Jeroen van der Zijp - for the Xt/Motif widgets
Bob Mercier - for the new 8-bit RGB dithering code
Pedro Vazquez - for establishing the Mesa mailing list
Bogdan Sikorski - for the GLU polygon tessellation code and NURBS
Linas Vepstas - for his extrusion and swept surface library
Frederic Devernay - for improved X shared memory support
Asif Khan - for bringing _many_ subtle bugs to my attention
Mark Peterson - for the MS Windows driver for Mesa
Gene Lett and Kerris Renkin - for diagnosing several rasterization problems
Alex De Bruyn - for HP Color Recovery display support
Miklos Fazekas - for the Macintosh driver
Frederic Devernay - for many Sun configs and lots of useful feedback
Victor Ng-Thow-Hing - for the Amiga AmiWin port
Bill Triggs - improved texture mapping features
Martin Bernhard - added texture coordinate generation to GLU quadric functions
Pascal Thibaudeau - NeXT support
Jean-Luc Daems, Jacques Leroy - numerous optimization in Mesa 1.2.7
Joerg Hessdoerfer - 16-bit TrueColor optimizations in Mesa 1.2.7
Stefan Zivkovic - for the Amiga driver
Peter McDermott - for the Cirrus Logic Mondello driver
Constantin Filin - for mipmapping/texture mapping code
Darren Abbott - for the OS/2 XFree86 port
Hal Brand - for X line and polygon stippling code
Eric Berdahl - for doing much of the internal overhaul work of Mesa for 2.0
Frank Ortega - for bug fixes and many helpful comments
Mats Lofkvist - for finding a number of bugs in Mesa 2.0
Charlie Wallace - for the MS-DOS driver
Li Wei - for updated Windows 95/NT driver
Pete French - for the OpenStep driver
Tinic Uro - for the BeOS driver
Daniel Barrero - for the 3-D texture mapping extension
Randy Frank - for many bug reports/fixes and code contributions
David Bucciarelli - for the 3Dfx driver
Paul Metzger - for Linux version of 3Dfx driver
Daryll Strauss - for the Linux Glide library
Kendall Bennet - for the SciTech MGL driver
Matthew Stewart-Smith - for updating the Linux SVGA driver
Magnus Lundin - for fixing a mipmap bug
Daniel Barrero - for the GL_EXT_point_parameters extension
Josh Vanderhoof - for Intel X86 assembly language optimizations
S3 - for the S3/Virge Windows 95 driver
Ted Jump - for Windows compilation support
Keith Whitwell - for version 3.1 vertex transformation optimizations
Holger Waechtler - for 3DNow! optimizations
Gareth Hughes - for the GLU 1.2 polygon tessellator


--------------------------------------------------------------------------
$Id: README,v 3.23.2.2 1999/12/14 20:55:29 brianp Exp $