home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 6 / AACD06.ISO / AACD / System / Mesa-3.1 / docs / README < prev    next >
Text File  |  2000-01-05  |  25KB  |  658 lines

  1.  
  2.                                  Mesa 3.1
  3.  
  4.                      Copyright (C) 1995-1999  Brian Paul
  5.  
  6.                               www.mesa3d.org
  7.  
  8.  
  9. Disclaimer
  10. ==========
  11.  
  12. Mesa is a 3-D graphics library with an API which is very similar to that
  13. of OpenGL*.  To the extent that Mesa utilizes the OpenGL command syntax
  14. or state machine, it is being used with authorization from Silicon Graphics,
  15. Inc.  However, the author makes no claim that Mesa is in any way a
  16. compatible replacement for OpenGL or associated with Silicon Graphics, Inc.
  17. Those who want a licensed implementation of OpenGL should contact a licensed
  18. vendor.
  19.  
  20. While Mesa is not a licensed OpenGL implementation, it is currently
  21. being tested with the OpenGL conformance tests.  For the current
  22. conformance status see the CONFORM file included in the Mesa distribution.
  23.  
  24. * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
  25.  
  26.  
  27.  
  28. Author
  29. ======
  30.  
  31. Brian Paul
  32. brian@mesa3d.org
  33.  
  34.  
  35.  
  36. Copyright Information
  37. =====================
  38.  
  39. The Mesa distribution consists of several components.  Different copyrights
  40. apply to different components.  For example, GLUT is copyrighted by Mark
  41. Kilgard, some demo programs are copyrighted by SGI, some of the Mesa
  42. device drivers are copyrighted by the respective authors.
  43.  
  44. Through version 3.0, the core Mesa library has been distributed under the
  45. GNU Library General Public License.
  46.  
  47. In Mesa 3.1 the core library will instead be released under an XFree86-
  48. style copyright.  The copyright is being changed so that Mesa can be
  49. integrated into the XFree86 X server in order to support 3D hardware
  50. acceleration.  Mesa will still be a stand-alone library too.
  51.  
  52. If you have contributed code to Mesa in the past and don't want your
  53. code included in the non-GNU LGPL version please contact Brian to
  54. have your code removed.
  55.  
  56. See the docs/COPYRIGHT file for more information.
  57.  
  58.  
  59. Introduction
  60. ============
  61.  
  62. While Mesa uses the OpenGL API and mimics its semantics, it is
  63. important to understand that Mesa is not a real implementation of OpenGL
  64. since it is not licensed.  That said, Mesa is still a viable alternative
  65. to OpenGL.  Most OpenGL applications should run with Mesa without code
  66. changes.
  67.  
  68. Since version 2.0, Mesa implements the OpenGL 1.1 API specification.
  69. Since version 3.0, Mesa implements the OpenGL 1.2 API specification.
  70.  
  71. Only a few features are not yet implemented:
  72.  
  73.     trimmed NURBS
  74.     polygon antialiasing
  75.  
  76.  
  77. The primary design goal of this library has been correctness.  Common
  78. code paths are optimized for speed.  If you find that a particular
  79. rendering operation is slow let me know about it.  It may be a simple
  80. matter to optimize the operation in question.
  81.  
  82. I've been working on this library in my spare time since August, 1993.
  83. The core library was originally written on an Amiga using the DCC compiler.
  84. Later, development was moved to an SGI workstation.  Current development
  85. is done on SGI and PC/Linux systems.
  86.  
  87. Mesa works on most Unix workstations with ANSI C and X11.  There are also
  88. drivers for Amiga, Microsoft Windows, Macintosh, MS DOS, NeXT, and BeOS
  89. systems.  Look below for more information.
  90.  
  91. Since the OpenGL API is used, OpenGL documentation can serve as the
  92. documentation for Mesa's core functions.  Here are a few sources:
  93.  
  94.   WWW Center:   http://www.sgi.com/Technology/openGL/
  95.   Man pages:    http://www.digital.com:80/pub/doc/opengl/
  96.   Spec doc:     http://www.sgi.com/Technology/openGL/glspec/glspec.html
  97.  
  98.  
  99.  
  100. Getting the software
  101. ====================
  102.  
  103. The primary Mesa ftp site is ftp://ftp.mesa3d.org/mesa/
  104. See the Mesa home page for mirrors.
  105.  
  106. As of version 2.3, Mesa is distributed in two pieces:  main library code
  107. and demos.  If you're upgrading from a previous version of Mesa or you're not
  108. interested in the demos you can just download the core Mesa archive file.
  109.  
  110. Mesa is available in three archive formats:
  111.  
  112. 1. GNU zip/tar
  113.  
  114.     Download MesaLib-3.1.tar.gz and optionally MesaDemos-3.1.tar.gz
  115.     Unpack with:
  116.         gzcat MesaLib-3.1.tar.gz | tar xf -
  117.         gzcat MesaDemos-3.1.tar.gz | tar xf -
  118.     or,
  119.         gunzip MesaLib-3.1.tar.gz ; tar xf MesaLib-3.1.tar
  120.         gunzip MesaDemos-3.1.tar.gz ; tar xf MesaLib-3.1.tar
  121.     or,
  122.         tar zxf MesaLib-3.1.tar.gz
  123.         tar zxf MesaDemos-3.1.tar.gz
  124.  
  125.     If you don't have gzcat try zcat instead.
  126.  
  127. 2. Unix compressed/tar
  128.  
  129.     Download MesaLib-3.1.tar.Z and optionally MesaDemos-3.1.tar.Z
  130.     Unpack with:
  131.         zcat MesaLib-3.1.tar.Z | tar xf -
  132.         zcat MesaDemos-3.1.tar.Z | tar xf -
  133.  
  134. 3. ZIP format
  135.  
  136.     Download MesaLib-3.1.zip and optionally MesaDemos-3.1.zip
  137.     Unpack with:
  138.         unzip MesaLib-3.1.zip
  139.         unzip MesaDemos-3.1.zip
  140.  
  141.  
  142. After unpacking you'll have these files (and more):
  143.  
  144. docs/README    - this file
  145. docs/README.*    - detailed information for specific OS/hardware systems
  146. docs/COPYRIGHT    - copyright info
  147. docs/VERSIONS    - version history
  148. docs/RELNOTES    - release notes for the new version
  149. docs/CONFORM    - results of conformance testing
  150. Makefile.X11    - "old" top-level Makefile for X11-based systems
  151. Make-config    - "old" system configurations used by the Makefiles
  152. bin/mklib.*    - shell scripts for making shared libraries for some systems
  153. include/    - client include files
  154. lib/        - client libraries, created during installation
  155. src/        - source code for core library
  156. src-glu/    - source code for utility library
  157. util/        - handly utility functions
  158. widgets-mesa/    - Mesa widgets for Xt/Motif
  159. widgets-sgi/    - SGI OpenGL widgets for Xt/Motif
  160.  
  161. and if you downloaded and unpacked the demos:
  162.  
  163. src-glut/    - source code for GLUT toolkit
  164. demos/        - GLUT demos
  165. xdemos/        - X11 and SVGA demo programs
  166. samples/    - sample OpenGL programs from SGI
  167. book/        - example programs from the OpenGL Programming Guide,
  168.           converted to GLUT by Mark Kilgard, from GLUT distribution.
  169. 3Dfx/        - 3Dfx demos and tests
  170. mtdemos/    - multi-threading demos
  171.  
  172.  
  173. Other Mesa-related stuff is at  ftp://ftp.mesa3d.org/mesa/contrib/
  174.  
  175.  
  176.  
  177. GLUT
  178. ====
  179.  
  180. Mesa 2.5 and later includes Mark Kilgard's GLUT library (GL Utility Toolkit).
  181. GLUT is built automatically on systems which support it.
  182.  
  183. The GLUT tests, demos, examples, etc are not included, just the main library.
  184. To obtain the latest complete release of GLUT please visit
  185. http://reality.sgi.com/employees/mjk_asd/glut3/glut3.html
  186.  
  187.  
  188.  
  189. Compiling and Installation
  190. ==========================
  191.  
  192. See the INSTALL file for instructions.
  193.  
  194.  
  195.  
  196. Compile-time configuration options
  197. ==================================
  198.    The file src/config.h has many parameters which you can adjust such
  199.    as maximum number of lights, clipping planes, maximum texture size,
  200.    etc.  In particular, you may want to change DEPTH_BITS from 16 to 32
  201.    if a 16-bit depth buffer isn't precise enough for your application.
  202.    After changing config.h you must recompile Mesa.
  203.  
  204.  
  205.  
  206. Using the Library
  207. =================
  208.  
  209. Performance Tips for software rendering:
  210.    1. Turn off smooth shading when you don't need it (glShadeModel)
  211.    2. Turn off depth buffering when you don't need it.
  212.    3. Turn off dithering when not needed.
  213.    4. Use double buffering as it's often faster than single buffering
  214.    5. Compile in the X Shared Memory extension option if it's supported
  215.       on your system by adding -DSHM to CFLAGS and -lXext to XLIBS for
  216.       your system in the Make-config file.
  217.    6. Recompile Mesa with more optimization if possible.
  218.    7. Try to maximize the amount of drawing done between glBegin/glEnd pairs.
  219.    8. Use the MESA_BACK_BUFFER variable to find best performance in double
  220.       buffered mode.  (X users only)
  221.    9. Optimized polygon rasterizers are employed when:
  222.          rendering into back buffer which is an XImage
  223.          RGB mode, not grayscale, not monochrome
  224.          depth buffering is GL_LESS, or disabled
  225.          flat or smooth shading
  226.          dithered or non-dithered
  227.          no other rasterization operations enabled (blending, stencil, etc)
  228.   10. Optimized line drawing is employed when:
  229.          rendering into back buffer which is an XImage
  230.          RGB mode, not grayscale, not monochrome
  231.          depth buffering is GL_LESS or disabled
  232.          flat shading
  233.          dithered or non-dithered
  234.          no other rasterization operations enabled (blending, stencil, etc)
  235.   11. Textured polygons are fastest when:
  236.          using a 3-component (RGB), 2-D texture
  237.          minification and magnification filters are GL_NEAREST
  238.          texture coordinate wrap modes for S and T are GL_REPEAT
  239.          GL_DECAL environment mode
  240.          glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST )
  241.          depth buffering is GL_LESS or disabled
  242.   12. Lighting is fastest when:
  243.          Two-sided lighting is disabled
  244.          GL_LIGHT_MODEL_LOCAL_VIEWER is false
  245.          GL_COLOR_MATERIAL is disabled
  246.          No spot lights are used (all GL_SPOT_CUTOFFs are 180.0)
  247.          No local lights are used (all position W's are 0.0)
  248.          All material and light coefficients are >= zero
  249.   13. XFree86 users:  if you want to use 24-bit color try starting your
  250.       X server in 32-bit per pixel mode for better performance.  That is,
  251.       start your X server with
  252.          startx -- -bpp 32
  253.       instead of
  254.          startx -- -bpp 24
  255.   14. Try disabling dithering with the MESA_NO_DITHER environment variable.
  256.       If this env var is defined Mesa will disable dithering and the
  257.       command glEnable(GL_DITHER) will be ignored.
  258.  
  259.  
  260. Debugging:
  261.    Normally Mesa records but does not notify the user of errors.  It is up
  262.    to the application to call glGetError to check for errors.  Mesa supports
  263.    an environment variable, MESA_DEBUG, to help with debugging.  If MESA_DEBUG
  264.    is defined, a message will be printed to stdout whenever an error occurs.
  265.  
  266.    More extensive error checking is done when Mesa is compiled with the
  267.    DEBUG symbol defined.  You'll have to edit the Make-config file and
  268.    add -DDEBUG to the CFLAGS line for your system configuration.  You may
  269.    also want to replace any optimization flags with the -g flag so you can
  270.    use your debugger.  After you've edited Make-config type 'make clean'
  271.    before recompiling.
  272.  
  273.    In your debugger you can set a breakpoint in gl_error() to trap Mesa
  274.    errors.
  275.  
  276.    There is a display list printing/debugging facility.  See the end of
  277.    src/dlist.c for details.
  278.  
  279.  
  280. Fortran bindings:
  281.    Fortan bindings are no longer included with Mesa.  William F. Mitchell
  282.    (william.mitchell@nist.gov) has developed a new set of Mesa/OpenGL and
  283.    GLUT bindings for Fortran.  See http://math.nist.gov/f90gl for more
  284.    information.
  285.  
  286.  
  287. Off-screen rendering:
  288.    Mesa 1.2.4 introduced off-screen rendering, a facility for generating
  289.    3-D imagery without having to open a window on your display.  Mesa's
  290.    simple off-screen rendering interface is completely operating system
  291.    and window system independent so programs which use off-screen rendering
  292.    should be very portable.  This new feature effectively enables you to
  293.    use Mesa as an off-line, batch-oriented renderer.
  294.  
  295.    The "OSMesa" API provides 3 functions for making off-screen renderings:
  296.    OSMesaCreateContext(), OSMesaMakeCurrent(), and OSMesaDestroyContext().
  297.    See the Mesa/include/GL/osmesa.h header for more information.  See the
  298.    demos/osdemo.c file for an example program.   There is no facility for
  299.    writing images to files.
  300.  
  301.    If you want to generate large images (larger than 1280x1024) you'll
  302.    have to edit the src/config.h file to change MAX_WIDTH and MAX_HEIGHT
  303.    then recompile Mesa.  Image size should only be limited by available
  304.    memory.
  305.  
  306.  
  307. Profiling: [this may no longer work in Mesa 3.1]
  308.    Mesa 1.2.6 introduced a simple profiling facility.  It counts and
  309.    measures the time spent in a number of important rendering operations
  310.    and prints the information in a report before your program exits.
  311.  
  312.    By default, profiling is disabled.  To enable it, add -DPROFILE to
  313.    the appropriate CFLAGS entry in the Make-config file, then recompile
  314.    Mesa.  In general, you should only enable profiling during program
  315.    development to gain insight into Mesa's performance.  Mesa runs a bit
  316.    slower when profiling is enabled because it requires frequent polling
  317.    of the system clock.
  318.  
  319.    The profiling report will be printed when glXDestroyContext is called
  320.    _if_ the MESA_PROFILE environment variable is set.  You must be sure
  321.    glXDestroyContext is called before exiting to get the profile report.
  322.    The report will be printed to stdout and includes:
  323.  
  324.       glBegin/glEnd - number of glBegin/glEnd pairs called, total time,
  325.          and rate in pairs/second.
  326.       vertexes transformed - number of vertices transformed, lit, clip-
  327.          tested, fogged, and mapped to window coordinates, total time,
  328.          and rate in vertexes/second.
  329.       points rasterized - number of points drawn, time, and rate.
  330.       lines rasterized - number of lines drawn, time, and rate.
  331.       polygons rasterized - number of polygons drawn, time and rate.
  332.       overhead - time between glBegin/glEnd not accounted for by vertexes,
  333.          points, lines, and polygons.  This is time spent executing
  334.          glVertex, glNormal, glColor, etc, clipping, primitive assembly,
  335.          and user code between glBegin/glEnd.
  336.       glClear - number of glClears executed, total time and clears/second.
  337.       SwapBuffers - number of swaps executed, total time and swaps/second.
  338.  
  339.    Note that the real point, line, and polygon rates should be computed by
  340.       adding in the vertex transformation and overhead time factors.
  341.  
  342.  
  343. Linux SVGA driver:
  344.    Mesa 1.2.6 has a preliminary Linux SVGA driver for Mesa.  It's based
  345.    on the SVGA library included with Linux.  The driver isn't finished
  346.    yet.  I'm not too familiar with SVGA graphics so I could use some help
  347.    finishing it.  Contact Brian if you want to help.
  348.  
  349.    To enable the SVGA driver, edit the Make-config file and add -DSVGA to
  350.    the CFLAGS for Linux and add -lvga to the LIBS variable.  There are
  351.    several test programs (vtest.c, vgears.c, vindex.c) in the demos
  352.    directory.  See the include/GL/svgamesa.h and src/svgamesa.c files for
  353.    more information about the driver.
  354.  
  355.  
  356. Extensions:
  357.    See the include/GL/gl.h header for a list of supported extensions
  358.    (search for "Compile-time tests".  Documentation for extensions can
  359.    be found at www.opengl.org.
  360.  
  361.    There are a few Mesa-specific extensions:
  362.  
  363.    GL_MESA_window_pos
  364.  
  365.       This extension adds the glWindowPos*MESA() functions.  These functions
  366.       are convenient alternatives to glRasterPos*() because they set the
  367.       current raster position to a specific window coordinate, bypassing the
  368.       usual modelview, projection and viewport transformations.  This is
  369.       especially useful for setting the position for glDrawPixels() or
  370.       glBitmap() to a specific window coordinate.
  371.  
  372.       X and Y parameters (positive and negative) are directly mapped to
  373.       window coordinates.  Z is a depth value clamped to the range [0,1].
  374.       W is directly mapped.  The current raster position valid flag is
  375.       always set to true.  The current raster distance is set to zero.
  376.       The current raster color and texture coordinate are updated in the
  377.       same manner as glRasterPos().  In selection mode a hit record is
  378.       always generated.
  379.  
  380.       Programs using OpenGL, not Mesa, may also use the glWindowPos*MESA()
  381.       functions by including winpos.h from the src directory and by
  382.       compiling and linking with the winpos.c file from the src directory.
  383.  
  384.    GL_MESA_resize_buffers
  385.  
  386.       This extension adds the glResizeBuffersMESA() function.  When this
  387.       function is called, Mesa checks if the color buffer (window) has
  388.       been resized.  If it has, Mesa reallocates the ancillary (depth,
  389.       stencil, accum) buffers.
  390.  
  391.       Normally, Mesa checks for window size changes whenever glViewport()
  392.       is called.  In some applications it may not be appropriate to call
  393.       glViewport() when the window is resized.  Such applications should
  394.       call glResizeBuffersMESA() instead so the ancillary buffers are
  395.       correctly updated.
  396.  
  397.       This extension is new in version 2.2.
  398.  
  399.  
  400. Runtime Configuration File:
  401.    See the CONFIG file for information on how to setup a Mesa config file.
  402.  
  403.  
  404. Version 2.x features:
  405.    Version 2.x of Mesa implements the OpenGL 1.1 API with the following
  406.    new features.
  407.  
  408.    Texture mapping:
  409.     glAreTexturesResident
  410.     glBindTexture
  411.     glCopyTexImage1D
  412.     glCopyTexImage2D
  413.     glCopyTexSubImage1D
  414.     glCopyTexSubImage2D
  415.     glDeleteTextures
  416.     glGenTextures
  417.     glIsTexture
  418.     glPrioritizeTextures
  419.     glTexSubImage1D
  420.     glTexSubImage2D
  421.  
  422.    Vertex Arrays:
  423.     glArrayElement
  424.     glColorPointer
  425.     glDrawElements
  426.     glEdgeFlagPointer
  427.     glIndexPointer
  428.     glInterleavedArrays
  429.     glNormalPointer
  430.     glTexCoordPointer
  431.     glVertexPointer
  432.  
  433.    Client state management:
  434.     glDisableClientState
  435.     glEnableClientState
  436.     glPopClientAttrib
  437.     glPushClientAttrib
  438.  
  439.    Misc:
  440.     glGetPointer
  441.     glIndexub
  442.     glIndexubv
  443.     glPolygonOffset
  444.  
  445.  
  446. Version 3.x features:
  447.    Version 3.x of Mesa implements the OpenGL 1.2 API with the following
  448.    new features:
  449.  
  450.    BGR, BGRA and packed pixel formats
  451.    New texture border clamp mode
  452.    glDrawRangeElements()
  453.    standard 3-D texturing
  454.    advanced MIPMAP control
  455.    separate specular color interpolation
  456.  
  457.  
  458. Summary of environment variables:
  459.    MESA_DEBUG - if defined, error messages are printed to stderr
  460.    MESA_NO_DITHER - disable dithering, overriding glEnable(GL_DITHER)
  461.    MESA_RGB_VISUAL - specifies the X visual and depth for RGB mode (X only)
  462.    MESA_CI_VISUAL - specifies the X visual and depth for CI mode (X only)
  463.    MESA_BACK_BUFFER - specifies how to implement the back color buffer (X only)
  464.    MESA_PRIVATE_CMAP - force aux/tk libraries to use private colormaps (X only)
  465.    MESA_GAMMA - gamma correction coefficients (X only)
  466.    MESA_PROFILE - enable reporting of performance measurements
  467.    MESA_XSYNC - enable synchronous X behavior (for X debugging only)
  468.    MESA_INFO - if defined, print Mesa version, vendor, extension, etc info
  469.  
  470.  
  471. Mailing List
  472. ============
  473.  
  474. There is a Mesa mailing list.  Its purpose is to let Mesa users exchange
  475. any ideas, questions, and/or problems they have.  To subscribe, send the
  476. following message to the address mesa-request@iqm.unicamp.br
  477.  
  478.     add yourname@your.internet.address mesa
  479.  
  480. For example:
  481.  
  482.     add brian_paul@mesa3d.org mesa
  483.  
  484. You will receive a welcome message from the list server when you have been
  485. added to the list.
  486.  
  487. To unsubscribe from the list send the following message to
  488. mesa-request@iqm.unicamp.br
  489.  
  490.     del yourname@your.internet.address mesa
  491.  
  492. Thanks to Pedro Vazquez (vazquez@iqm.unicamp.br) for setting up and
  493. maintaing the list.
  494.  
  495.  
  496.  
  497. Contributed code
  498. ================
  499.  
  500. There is a contrib/ subdirectory on the Mesa ftp site which contains
  501. contributions from Mesa users.  See the README file in that directory for
  502. more information.
  503.  
  504. Anyone is welcome to contribute code to the Mesa project, provided you
  505. agree to the copyright of the relevant code.
  506.  
  507. If you're contribution code to the Mesa library itself:
  508.    1. Try to write clean code (uniform indentation, comments, meaningful
  509.       identifiers, etc).  It must be readable and maintainable!
  510.    2. Test your code.  On several occations I've incorporated code from
  511.       users which later turned out to have bugs.  Now, I'm pretty hesitant
  512.       to use code which doesn't look good.
  513.  
  514.  
  515.  
  516.  
  517. Reporting Bugs
  518. ==============
  519.  
  520. If you think you've found a bug in Mesa first check if a newer version of
  521. Mesa is available from the web page at www.mesa3d.org.
  522. if a patch for your bug is there.  Otherwise, report the problem.
  523.  
  524. Since many people have contributed code to Mesa it's important that you
  525. report a bug to the right person:
  526.  
  527. Area            Contact
  528. ----------------------    -------------------------------------------
  529. GLU polygon tessellator    Bogdan Sikorski  bogdan@cira.it
  530. GLU NURBS        Bogdan Sikorski  bogdan@cira.it
  531. Evaluators        Bernd Barsuhn  bernd@berlin.muc.de
  532. Xt/Motif widgets    Thorsten Ohl  ohl@crunch.ikp.physik.th-darmstadt.de
  533.               and Jeroen van der Zijp  jvz@cyberia.cfdrc.com
  534. Fortran bindings    William Mitchell  william.mitchell@nist.gov
  535. Amiga driver        Stefan Zivkovic  d94sz@efd.lth.se
  536. Amiwin driver        Victor Ng-Thow-Hing  victorng@dgp.toronto.edu
  537. Macintosh driver    Miklos Fazekas  boga@augusta.elte.hu
  538. NeXT driver        Pascal Thibaudeau pthibaud@frbdx11.cribx1.u-bordeaux.fr
  539. OS/2 driver        Darren Abbott  abbott@hiwaay.net
  540. VMS support        Jouk Jansen  joukj@crys.chem.uva.nl
  541. Windows 95/NT driver    Theodore A. Jump  tjump@spgs.com
  542. MS-DOS driver        Charlie Wallace  cwallace@dreamworks.com
  543. BeOS driver        Tinic Uro  5uro@informatik.uni-hamburg.de
  544. GLX encoder/decoder    Steven Parker  sparker@taz.cs.utah.edu
  545. 3Dfx driver        David Bucciarelli  davibu@tin.it
  546. SciTech MGL driver    Kendall Bennett  KendallB@scitechsoft.com
  547. Cygnus Win32 support    No maintainer.  Any volunteers?
  548. S3 Virge driver        rkoduri@s3.com or pcgamedev@s3.com
  549. Multithreading work    John Stone  johns@umr.edu
  550. Allegro DJGPP driver    Bernhard Tschirren  bernie-t@geocities.com
  551. Direct3D driver        Leigh McRae  leigh@altsoftware.com
  552. GGI driver        Jon Taylor  jtaylor@creaf.com
  553. Mailing list help    Pedro Vazquez  vazquez@iqm.unicamp.br
  554.  
  555. EVERYTHING ELSE-->    mesa-bugs@mesa3d.org
  556.  
  557. Feel free to cc mesa-bugs@mesa3d.org on messages sent to anyone listed above.
  558. None of the people on this list are under any obligation to respond to bug
  559. reports.  However, they have been pretty helpful so far.
  560.  
  561. When you report a bug please give as much information as possible including
  562. your hardware/software environment, which version of Mesa you're using, how
  563. to reproduce the problem, and if possible, a test program.
  564.  
  565.  
  566.  
  567. Known Bugs
  568. ==========
  569.  
  570. 1. Evaluator automatic normal vectors are miscalculated under certain
  571.    conditions.
  572.  
  573. 2. Mesa doesn't work too well on Crays.  The problem is that Crays do not
  574.    have the exact C data type sizes which Mesa's X driver relies on.  Better
  575.    Cray support may or may not be seen in the future.
  576.  
  577. 3. gluCylinder, and probably other GLU quadrics, don't generate texture
  578.    coordinates when drawing in point or line mode.
  579.  
  580. 4. NURBS code does not copy user supplied data as it should; it just
  581.    stores pointers to that data. For the moment all data must be valid and
  582.    available utill the gluEndSurface() or the gluEndCurve() call.
  583.  
  584.  
  585.  
  586. Why is it the library called Mesa?
  587. ==================================
  588.  
  589. Why not?  More obvious names were considered but had to be rejected:
  590. FreeGL (too similar to the trademarked name OpenGL), Free3D (too similar
  591. to DEC's Open3D).  Also, I'm tired of acronyms.
  592.  
  593.  
  594.  
  595. Contributors
  596. ============
  597.  
  598. Many people have contributed to Mesa.  I really appreciate the help!
  599. Among the contributors are:
  600.  
  601. Erich Stefan Boleyn - for the glRotate code and testing early Mesa
  602. Joe Kiniry, Kendall Bennett - for opinions and discussion
  603. Marc Buffat - for the gluProject and gluUnproject functions
  604. Bernd Barsuhn, Volker Weiss - for the new implementation of evaluators
  605. Philip Brown - for the initial GLX, GLUT implementation
  606. Thorsten Ohl - for glXUseXFont() and glBitmap bug fixes
  607. Thomas Malik - for new invert_matrix and other xform.c code
  608. Michael Pichler - for X colormap code and numerous bug reports/fixes
  609. Thorsten Ohl, Jeroen van der Zijp - for the Xt/Motif widgets
  610. Bob Mercier - for the new 8-bit RGB dithering code
  611. Pedro Vazquez - for establishing the Mesa mailing list
  612. Bogdan Sikorski - for the GLU polygon tessellation code and NURBS
  613. Linas Vepstas - for his extrusion and swept surface library
  614. Frederic Devernay - for improved X shared memory support
  615. Asif Khan - for bringing _many_ subtle bugs to my attention
  616. Mark Peterson - for the MS Windows driver for Mesa
  617. Gene Lett and Kerris Renkin - for diagnosing several rasterization problems
  618. Alex De Bruyn - for HP Color Recovery display support
  619. Miklos Fazekas - for the Macintosh driver
  620. Frederic Devernay - for many Sun configs and lots of useful feedback
  621. Victor Ng-Thow-Hing - for the Amiga AmiWin port
  622. Bill Triggs - improved texture mapping features
  623. Martin Bernhard - added texture coordinate generation to GLU quadric functions
  624. Pascal Thibaudeau - NeXT support
  625. Jean-Luc Daems, Jacques Leroy - numerous optimization in Mesa 1.2.7
  626. Joerg Hessdoerfer - 16-bit TrueColor optimizations in Mesa 1.2.7
  627. Stefan Zivkovic - for the Amiga driver
  628. Peter McDermott - for the Cirrus Logic Mondello driver
  629. Constantin Filin - for mipmapping/texture mapping code
  630. Darren Abbott - for the OS/2 XFree86 port
  631. Hal Brand - for X line and polygon stippling code
  632. Eric Berdahl - for doing much of the internal overhaul work of Mesa for 2.0
  633. Frank Ortega - for bug fixes and many helpful comments
  634. Mats Lofkvist - for finding a number of bugs in Mesa 2.0
  635. Charlie Wallace - for the MS-DOS driver
  636. Li Wei - for updated Windows 95/NT driver
  637. Pete French - for the OpenStep driver
  638. Tinic Uro - for the BeOS driver
  639. Daniel Barrero - for the 3-D texture mapping extension
  640. Randy Frank - for many bug reports/fixes and code contributions
  641. David Bucciarelli - for the 3Dfx driver
  642. Paul Metzger - for Linux version of 3Dfx driver
  643. Daryll Strauss - for the Linux Glide library
  644. Kendall Bennet - for the SciTech MGL driver
  645. Matthew Stewart-Smith - for updating the Linux SVGA driver
  646. Magnus Lundin - for fixing a mipmap bug
  647. Daniel Barrero - for the GL_EXT_point_parameters extension
  648. Josh Vanderhoof - for Intel X86 assembly language optimizations
  649. S3 - for the S3/Virge Windows 95 driver
  650. Ted Jump - for Windows compilation support
  651. Keith Whitwell - for version 3.1 vertex transformation optimizations
  652. Holger Waechtler - for 3DNow! optimizations
  653. Gareth Hughes - for the GLU 1.2 polygon tessellator
  654.  
  655.  
  656. --------------------------------------------------------------------------
  657. $Id: README,v 3.23.2.2 1999/12/14 20:55:29 brianp Exp $
  658.