aboutsummaryrefslogtreecommitdiff
path: root/mesalib/docs
diff options
context:
space:
mode:
Diffstat (limited to 'mesalib/docs')
-rw-r--r--mesalib/docs/autoconf.html8
-rw-r--r--mesalib/docs/devinfo.html436
-rw-r--r--mesalib/docs/download.html5
-rw-r--r--mesalib/docs/faq.html6
-rw-r--r--mesalib/docs/license.html8
-rw-r--r--mesalib/docs/sourcetree.html331
6 files changed, 389 insertions, 405 deletions
diff --git a/mesalib/docs/autoconf.html b/mesalib/docs/autoconf.html
index 936ddcffe..64bcbd48a 100644
--- a/mesalib/docs/autoconf.html
+++ b/mesalib/docs/autoconf.html
@@ -21,7 +21,6 @@
<ul>
<li><a href="#glu">GLU</a></li>
<li><a href="#glw">GLw</a></li>
- <li><a href="#glut">GLUT</a></li>
</ul>
<li><a href="#demos">Demo Program Options</a></li>
</ol>
@@ -252,13 +251,6 @@ on all drivers. This can be disable with the option
if libGLU has been enabled. This can be disable with the option
<code>--disable-glw</code>.
</li>
-
-<a name="glut">
-<li><b><em>GLUT</em></b> - The libglut library will be built by default
-if libGLU has been enabled and the glut source code from the MesaGLUT
-tarball is available. This can be disable with the option
-<code>--disable-glut</code>.
-</li>
</ul>
</p>
diff --git a/mesalib/docs/devinfo.html b/mesalib/docs/devinfo.html
index b2cbf17b4..8887dd026 100644
--- a/mesalib/docs/devinfo.html
+++ b/mesalib/docs/devinfo.html
@@ -1,221 +1,215 @@
-<HTML>
-
-<TITLE>Development Notes</TITLE>
-
-<link rel="stylesheet" type="text/css" href="mesa.css"></head>
-
-<BODY>
-
-<H1>Development Notes</H1>
-
-
-<H2>Adding Extentions</H2>
-
-<p>
-To add a new GL extension to Mesa you have to do at least the following.
-
-<ul>
-<li>
- If glext.h doesn't define the extension, edit include/GL/gl.h and add
- code like this:
- <pre>
- #ifndef GL_EXT_the_extension_name
- #define GL_EXT_the_extension_name 1
- /* declare the new enum tokens */
- /* prototype the new functions */
- /* TYPEDEFS for the new functions */
- #endif
- </pre>
-</li>
-<li>
- In the src/mesa/glapi/ directory, add the new extension functions and
- enums to the gl_API.xml file.
- Then, a bunch of source files must be regenerated by executing the
- corresponding Python scripts.
-</li>
-<li>
- Add a new entry to the <code>gl_extensions</code> struct in mtypes.h
-</li>
-<li>
- Update the <code>extensions.c</code> file.
-</li>
-<li>
- From this point, the best way to proceed is to find another extension,
- similar to the new one, that's already implemented in Mesa and use it
- as an example.
-</li>
-<li>
- If the new extension adds new GL state, the functions in get.c, enable.c
- and attrib.c will most likely require new code.
-</li>
-</ul>
-
-
-
-<H2>Coding Style</H2>
-
-<p>
-Mesa's code style has changed over the years. Here's the latest.
-</p>
-
-<p>
-Comment your code! It's extremely important that open-source code be
-well documented. Also, strive to write clean, easily understandable code.
-</p>
-
-<p>
-3-space indentation
-</p>
-
-<p>
-If you use tabs, set them to 8 columns
-</p>
-
-<p>
-Brace example:
-</p>
-<pre>
- if (condition) {
- foo;
- }
- else {
- bar;
- }
-</pre>
-
-<p>
-Here's the GNU indent command which will best approximate my preferred style:
-</p>
-<pre>
- indent -br -i3 -npcs --no-tabs infile.c -o outfile.c
-</pre>
-
-
-<p>
-Local variable name example: localVarName (no underscores)
-</p>
-
-<p>
-Constants and macros are ALL_UPPERCASE, with _ between words
-</p>
-
-<p>
-Global variables are not allowed.
-</p>
-
-<p>
-Function name examples:
-</p>
-<pre>
- glFooBar() - a public GL entry point (in glapi_dispatch.c)
- _mesa_FooBar() - the internal immediate mode function
- save_FooBar() - retained mode (display list) function in dlist.c
- foo_bar() - a static (private) function
- _mesa_foo_bar() - an internal non-static Mesa function
-</pre>
-
-
-<H2>Making a New Mesa Release</H2>
-
-<p>
-These are the instructions for making a new Mesa release.
-</p>
-
-<H3>Get latest source files</H3>
-<p>
-Use git to get the latest Mesa files from the git repository, from whatever
-branch is relevant.
-</p>
-
-
-<H3>Verify and update version info</H3>
-<p>
-Create/edit the docs/relnotes-x.y.html file to document what's new in the release.
-Add the new relnotes-x.y.html file to <a href="relnotes.html">relnotes.html</a>.
-</p>
-
-<p>
-Update the MESA_MAJOR, MESA_MINOR and MESA_TINY version numbers in
-configs/default.
-Also update the VERSION line in the top-level Makefile.
-</p>
-
-<p>
-Make sure the values in src/mesa/main/version.h are correct.
-</p>
-
-<p>
-Update docs/news.html.
-</p>
-
-<p>
-Check in all updates to git.
-</p>
-
-<p>
-Tag the files with the release name (in the form <b>mesa_X_Y</b>)
-with: <code>git tag -a mesa_X_Y</code>
-Then: <code>git push origin mesa_X_Y</code>
-</p>
-
-
-<H3>Make the tarballs</H3>
-<p>
-Make a symbolic link from $(DIRECTORY) to 'Mesa'. For example,
-<code>ln -s Mesa Mesa-7.5</code>
-This is needed in order to make a correct tar file in the next step.
-</p>
-
-<p>
-Make the distribution files. From inside the Mesa directory:
-<pre>
- make tarballs
-</pre>
-
-<p>
-After the tarballs are created, the md5 checksums for the files will
-be computed.
-Add them to the docs/relnotes-X.Y.html file.
-</p>
-
-<p>
-Copy the distribution files to a temporary directory, unpack them,
-compile everything, and run some demos to be sure everything works.
-</p>
-
-<H3>Update the website and announce the release</H3>
-<p>
-Follow the directions on SourceForge for creating a new "release" and
-uploading the tarballs.
-</p>
-
-<p>
-Basically, to upload the tarball files with:
-<br>
-<code>
-rsync -avP ssh Mesa*-X.Y.* USERNAME@frs.sourceforge.net:uploads/
-</code>
-</p>
-
-<p>
-Update the web site by copying the docs/ directory's files to
-/home/users/b/br/brianp/mesa-www/htdocs/ with:
-<br>
-<code>
-sftp USERNAME,mesa3d@web.sourceforge.net
-</code>
-</p>
-
-<p>
-Make an announcement on the mailing lists:
-
-<em>m</em><em>e</em><em>s</em><em>a</em><em>-</em><em>d</em><em>e</em><em>v</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>f</em><em>r</em><em>e</em><em>e</em><em>d</em><em>e</em><em>s</em><em>k</em><em>t</em><em>o</em><em>p</em><em>.</em><em>o</em><em>r</em><em>g</em>,
-<em>m</em><em>e</em><em>s</em><em>a</em><em>-</em><em>u</em><em>s</em><em>e</em><em>r</em><em>s</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>f</em><em>r</em><em>e</em><em>e</em><em>d</em><em>e</em><em>s</em><em>k</em><em>t</em><em>o</em><em>p</em><em>.</em><em>o</em><em>r</em><em>g</em>
-and
-<em>m</em><em>e</em><em>s</em><em>a</em><em>-</em><em>a</em><em>n</em><em>n</em><em>o</em><em>u</em><em>n</em><em>c</em><em>e</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>f</em><em>r</em><em>e</em><em>e</em><em>d</em><em>e</em><em>s</em><em>k</em><em>t</em><em>o</em><em>p</em><em>.</em><em>o</em><em>r</em><em>g</em>
-</p>
-
-
-
-</body>
-</html>
+<HTML>
+
+<TITLE>Development Notes</TITLE>
+
+<link rel="stylesheet" type="text/css" href="mesa.css"></head>
+
+<BODY>
+
+<H1>Development Notes</H1>
+
+
+<H2>Adding Extentions</H2>
+
+<p>
+To add a new GL extension to Mesa you have to do at least the following.
+
+<ul>
+<li>
+ If glext.h doesn't define the extension, edit include/GL/gl.h and add
+ code like this:
+ <pre>
+ #ifndef GL_EXT_the_extension_name
+ #define GL_EXT_the_extension_name 1
+ /* declare the new enum tokens */
+ /* prototype the new functions */
+ /* TYPEDEFS for the new functions */
+ #endif
+ </pre>
+</li>
+<li>
+ In the src/mesa/glapi/ directory, add the new extension functions and
+ enums to the gl_API.xml file.
+ Then, a bunch of source files must be regenerated by executing the
+ corresponding Python scripts.
+</li>
+<li>
+ Add a new entry to the <code>gl_extensions</code> struct in mtypes.h
+</li>
+<li>
+ Update the <code>extensions.c</code> file.
+</li>
+<li>
+ From this point, the best way to proceed is to find another extension,
+ similar to the new one, that's already implemented in Mesa and use it
+ as an example.
+</li>
+<li>
+ If the new extension adds new GL state, the functions in get.c, enable.c
+ and attrib.c will most likely require new code.
+</li>
+</ul>
+
+
+
+<H2>Coding Style</H2>
+
+<p>
+Mesa's code style has changed over the years. Here's the latest.
+</p>
+
+<p>
+Comment your code! It's extremely important that open-source code be
+well documented. Also, strive to write clean, easily understandable code.
+</p>
+
+<p>
+3-space indentation
+</p>
+
+<p>
+If you use tabs, set them to 8 columns
+</p>
+
+<p>
+Brace example:
+</p>
+<pre>
+ if (condition) {
+ foo;
+ }
+ else {
+ bar;
+ }
+</pre>
+
+<p>
+Here's the GNU indent command which will best approximate my preferred style:
+</p>
+<pre>
+ indent -br -i3 -npcs --no-tabs infile.c -o outfile.c
+</pre>
+
+
+<p>
+Local variable name example: localVarName (no underscores)
+</p>
+
+<p>
+Constants and macros are ALL_UPPERCASE, with _ between words
+</p>
+
+<p>
+Global variables are not allowed.
+</p>
+
+<p>
+Function name examples:
+</p>
+<pre>
+ glFooBar() - a public GL entry point (in glapi_dispatch.c)
+ _mesa_FooBar() - the internal immediate mode function
+ save_FooBar() - retained mode (display list) function in dlist.c
+ foo_bar() - a static (private) function
+ _mesa_foo_bar() - an internal non-static Mesa function
+</pre>
+
+
+<H2>Making a New Mesa Release</H2>
+
+<p>
+These are the instructions for making a new Mesa release.
+</p>
+
+<H3>Get latest source files</H3>
+<p>
+Use git to get the latest Mesa files from the git repository, from whatever
+branch is relevant.
+</p>
+
+
+<H3>Verify and update version info</H3>
+<p>
+Create/edit the docs/relnotes-x.y.html file to document what's new in the release.
+Add the new relnotes-x.y.html file to <a href="relnotes.html">relnotes.html</a>.
+</p>
+
+<p>
+Update the MESA_MAJOR, MESA_MINOR and MESA_TINY version numbers in
+configs/default.
+Also update the VERSION line in the top-level Makefile.
+</p>
+
+<p>
+Make sure the values in src/mesa/main/version.h are correct.
+</p>
+
+<p>
+Update docs/news.html.
+</p>
+
+<p>
+Check in all updates to git.
+</p>
+
+<p>
+Tag the files with the release name (in the form <b>mesa_X_Y</b>)
+with: <code>git tag -a mesa_X_Y</code>
+Then: <code>git push origin mesa_X_Y</code>
+</p>
+
+
+<H3>Make the tarballs</H3>
+<p>
+Make the distribution files. From inside the Mesa directory:
+<pre>
+ make tarballs
+</pre>
+
+<p>
+After the tarballs are created, the md5 checksums for the files will
+be computed.
+Add them to the docs/relnotes-X.Y.html file.
+</p>
+
+<p>
+Copy the distribution files to a temporary directory, unpack them,
+compile everything, and run some demos to be sure everything works.
+</p>
+
+<H3>Update the website and announce the release</H3>
+<p>
+Follow the directions on SourceForge for creating a new "release" and
+uploading the tarballs.
+</p>
+
+<p>
+Basically, to upload the tarball files with:
+<br>
+<code>
+rsync -avP ssh Mesa*-X.Y.* USERNAME@frs.sourceforge.net:uploads/
+</code>
+</p>
+
+<p>
+Update the web site by copying the docs/ directory's files to
+/home/users/b/br/brianp/mesa-www/htdocs/ with:
+<br>
+<code>
+sftp USERNAME,mesa3d@web.sourceforge.net
+</code>
+</p>
+
+<p>
+Make an announcement on the mailing lists:
+
+<em>m</em><em>e</em><em>s</em><em>a</em><em>-</em><em>d</em><em>e</em><em>v</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>f</em><em>r</em><em>e</em><em>e</em><em>d</em><em>e</em><em>s</em><em>k</em><em>t</em><em>o</em><em>p</em><em>.</em><em>o</em><em>r</em><em>g</em>,
+<em>m</em><em>e</em><em>s</em><em>a</em><em>-</em><em>u</em><em>s</em><em>e</em><em>r</em><em>s</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>f</em><em>r</em><em>e</em><em>e</em><em>d</em><em>e</em><em>s</em><em>k</em><em>t</em><em>o</em><em>p</em><em>.</em><em>o</em><em>r</em><em>g</em>
+and
+<em>m</em><em>e</em><em>s</em><em>a</em><em>-</em><em>a</em><em>n</em><em>n</em><em>o</em><em>u</em><em>n</em><em>c</em><em>e</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>f</em><em>r</em><em>e</em><em>e</em><em>d</em><em>e</em><em>s</em><em>k</em><em>t</em><em>o</em><em>p</em><em>.</em><em>o</em><em>r</em><em>g</em>
+</p>
+
+
+
+</body>
+</html>
diff --git a/mesalib/docs/download.html b/mesalib/docs/download.html
index 03fa60b4d..3c4d5976c 100644
--- a/mesalib/docs/download.html
+++ b/mesalib/docs/download.html
@@ -25,9 +25,8 @@ The Mesa package is named MesaLib-x.y.z.{tar.bz2, tar.gz, zip} where x.y.z
is the version. There are three types of compressed archives.
</p>
<p>
-There's also the MesaGLUT-x.y.z.{tar.bz2, tar.gz, zip} packages which
-contain Mark Kilgard's GLUT library.
-This is optional.
+In the past, there was also MesaGLUT-x.y.z.{tar.bz2, tar.gz, zip} packages which
+contained Mark Kilgard's GLUT library.
Most Linux distributions include an implementation of GLUT (such as freeglut).
</p>
<p>
diff --git a/mesalib/docs/faq.html b/mesalib/docs/faq.html
index 65e279aac..071381c5a 100644
--- a/mesalib/docs/faq.html
+++ b/mesalib/docs/faq.html
@@ -198,9 +198,9 @@ Mesa's not the solution.
<h2><a name="part2">2.3 Where is the GLUT library?</a></h2>
<p>
-<a name="part2">GLUT (OpenGL Utility Toolkit) is in the separate MesaGLUT-x.y.z.tar.gz file.
-If you don't already have GLUT installed, you should grab the MesaGLUT
-package and compile it with the rest of Mesa.
+<a name="part2">GLUT (OpenGL Utility Toolkit) is no longer in the separate MesaGLUT-x.y.z.tar.gz file.
+If you don't already have GLUT installed, you should grab
+<a href="http://freeglut.sourceforge.net/">freeglut</a>.
</a></p>
diff --git a/mesalib/docs/license.html b/mesalib/docs/license.html
index 44b980d93..5da8ef1de 100644
--- a/mesalib/docs/license.html
+++ b/mesalib/docs/license.html
@@ -38,10 +38,10 @@ target="_parent">Silicon Graphics Incorporated</a>.
<p>
The Mesa distribution consists of several components. Different copyrights
-and licenses 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 their authors. See below for a list of
-Mesa's main components and the license for each.
+and licenses apply to different components. For example, some demo programs
+are copyrighted by SGI, some of the Mesa device drivers are copyrighted by
+their authors. See below for a list of Mesa's main components and the license
+for each.
</p>
<p>
The core Mesa library is licensed according to the terms of the MIT license.
diff --git a/mesalib/docs/sourcetree.html b/mesalib/docs/sourcetree.html
index 67e0494b1..2e2d1d3f2 100644
--- a/mesalib/docs/sourcetree.html
+++ b/mesalib/docs/sourcetree.html
@@ -1,166 +1,165 @@
-<HTML>
-
-<TITLE>Mesa Source Tree</TITLE>
-
-<link rel="stylesheet" type="text/css" href="mesa.css"></head>
-
-<BODY>
-
-<h1>Mesa source code tree overview</h1>
-
-<p>
-This is a brief summary of Mesa's directory tree and what's contained in
-each directory.
-</p>
-
-
-<ul>
-<li><b>docs</b> - Documentation
-<li><b>include</b> - Public OpenGL header files
-<li><b>src</b>
- <ul>
- <li><b>egl</b> - EGL library sources
- <ul>
- <li><b>docs</b> - EGL documentation
- <li><b>drivers</b> - EGL drivers
- <li><b>glsl</b> - the GLSL compiler
- <li><b>main</b> - main EGL library implementation. This is where all
- the EGL API functions are implemented, like eglCreateContext().
- </ul>
- <li><b>mesa</b> - Main Mesa sources
- <ul>
- <li><b>glapi</b> - OpenGL API dispatch layer. This is where all the
- GL entrypoints like glClear, glBegin, etc. are generated, as well as
- the GL dispatch table. All GL function calls jump through the
- dispatch table to functions found in main/.
- <li><b>main</b> - The core Mesa code (mainly state management)
- <li><b>drivers</b> - Mesa drivers (not used with Gallium)
- <ul>
- <li><b>common</b> - code which may be shared by all drivers
- <li><b>dri</b> - Direct Rendering Infrastructure drivers
- <ul>
- <li><b>common</b> - code shared by all DRI drivers
- <li><b>i915</b> - driver for Intel i915/i945
- <li><b>i965</b> - driver for Intel i965
- <li>XXX more
- </ul>
- <li><b>x11</b> - Xlib-based software driver
- <li><b>osmesa</b> - off-screen software driver
- <li><b>glslcompiler</b> - a stand-alone GLSL compiler driver
- <li>XXX more
- </ul>
- <li><b>es</b> - OpenGL ES overlay, parallelly buildable with the core Mesa
- <li><b>math</b> - vertex array translation and transformation code
- (not used with Gallium)
- <li><b>ppc</b> - Assembly code/optimizations for PPC systems
- (not used with Gallium)
- <li><b>shader</b> - Vertex/fragment shader and GLSL compiler code
- <li><b>sparc</b> - Assembly code/optimizations for SPARC systems
- (not used with Gallium)
- <li><b>state_tracker</b> - State tracker / driver for Gallium. This
- is basically a Mesa device driver that speaks to Gallium. This
- directory may be moved to src/mesa/drivers/gallium at some point.
- <li><b>swrast</b> - Software rasterization module. For drawing points,
- lines, triangles, bitmaps, images, etc. in software.
- (not used with Gallium)
- <li><b>swrast_setup</b> - Software primitive setup. Does things like
- polygon culling, glPolygonMode, polygon offset, etc.
- (not used with Gallium)
- <li><b>tnl</b> - Software vertex Transformation 'n Lighting.
- (not used with Gallium)
- <li><b>tnl_dd</b> - TNL code for device drivers.
- (not used with Gallium)
- <li><b>vbo</b> - Vertex Buffer Object code. All drawing with
- glBegin/glEnd, glDrawArrays, display lists, etc. goes through this
- module. The results is a well-defined set of vertex arrays which
- are passed to the device driver (or tnl module) for rendering.
- <li><b>vf</b> - vertex format conversion (currently unused)
- <li><b>x86</b> - Assembly code/optimizations for 32-bit x86 systems
- (not used with Gallium)
- <li><b>x86-64</b> - Assembly code/optimizations for 64-bit x86 systems
- (not used with Gallium)
- </ul>
- <li><b>gallium</b> - Gallium3D source code
- <ul>
- <li><b>include</b> - Gallium3D header files which define the Gallium3D
- interfaces
- <li><b>drivers</b> - Gallium3D device drivers
- <ul>
- <li><b>cell</b> - Driver for Cell processor.
- <li><b>i915</b> - Driver for Intel i915/i945.
- <li><b>i965</b> - Driver for Intel i965.
- <li><b>llvmpipe</b> - Software driver using LLVM for runtime code generation.
- <li><b>nv*</b> - Drivers for NVIDIA GPUs.
- <li><b>r300</b> - Driver for ATI/AMD R300.
- <li><b>softpipe</b> - Software reference driver.
- <li><b>svga</b> - Driver for VMware's SVGA virtual GPU.
- <li><b>trace</b> - Driver for tracing Gallium calls.
- <li>XXX more
- </ul>
- <li><b>auxiliary</b> - Gallium support code
- <ul>
- <li><b>draw</b> - Software vertex processing and primitive assembly
- module. This includes vertex program execution, clipping, culling
- and optional stages for drawing wide lines, stippled lines,
- polygon stippling, two-sided lighting, etc.
- Intended for use by drivers for hardware that does not have
- vertex shaders.
- Geometry shaders will also be implemented in this module.
- <li><b>cso_cache</b> - Constant State Objects Cache. Used to filter out
- redundant state changes between state trackers and drivers.
- <li><b>gallivm</b> - LLVM module for Gallium. For LLVM-based
- compilation, optimization and code generation for TGSI shaders.
- Incomplete.
- <li><b>pipebuffer</b> - utility module for managing buffers
- <li><b>rbug</b> - Gallium remote debug utility
- <li><b>rtasm</b> - run-time assembly/machine code generation.
- Currently there's run-time code generation for x86/SSE, PowerPC
- and Cell SPU.
- <li><b>tgsi</b> - TG Shader Infrastructure. Code for encoding,
- manipulating and interpretting GPU programs.
- <li><b>translate</b> - module for translating vertex data from one format
- to another.
- <li><b>util</b> - assorted utilities for arithmetic, hashing, surface
- creation, memory management, 2D blitting, simple rendering, etc.
- </ul>
- <li><b>state_trackers</b> -
- <ul>
- <li><b>dri</b> - Meta state tracker for DRI drivers
- <li><b>egl</b> - Meta state tracker for EGL drivers
- <li><b>es</b> - OpenGL ES 1.x and 2.x state trackers
- <li><b>g3dvl</b> -
- <li><b>glx</b> - Meta state tracker for GLX
- <li><b>python</b> -
- <li><b>vega</b> - OpenVG 1.x state tracker
- <li><b>wgl</b> -
- <li><b>xorg</b> - Meta state tracker for Xorg video drivers
- </ul>
- <li><b>winsys</b> -
- <ul>
- <li><b>drm</b> -
- <li><b>g3dvl</b> -
- <li><b>gdi</b> -
- <li><b>xlib</b> -
- </ul>
- </ul>
- </ul>
- <ul>
- <li><b>glu</b> - The OpenGL Utility library
- <ul>
- <li><b>sgi</b> - GLU from SGI
- <li><b>mesa</b> - Mesa version of GLU (deprecated)
- </ul>
- <li><b>glut</b> - Mark Kilgard's OpenGL OpenGL Utility Toolkit library
- <li><b>glx</b> - The GLX library code for building libGL. This is used for
- direct rendering drivers. It will dynamically load one of the
- xxx_dri.so drivers.
- <li><b>glw</b> - Widgets for Xt/Motif.
- <li><b>glew</b> - OpenGL Extension Wrangler library (used by demo programs)
- </ul>
-<li><b>progs</b> - OpenGL test and demonstration programs
-<li><b>lib</b> - where the GL libraries are placed
-</ul>
-
-
-</BODY>
-</HTML>
+<HTML>
+
+<TITLE>Mesa Source Tree</TITLE>
+
+<link rel="stylesheet" type="text/css" href="mesa.css"></head>
+
+<BODY>
+
+<h1>Mesa source code tree overview</h1>
+
+<p>
+This is a brief summary of Mesa's directory tree and what's contained in
+each directory.
+</p>
+
+
+<ul>
+<li><b>docs</b> - Documentation
+<li><b>include</b> - Public OpenGL header files
+<li><b>src</b>
+ <ul>
+ <li><b>egl</b> - EGL library sources
+ <ul>
+ <li><b>docs</b> - EGL documentation
+ <li><b>drivers</b> - EGL drivers
+ <li><b>glsl</b> - the GLSL compiler
+ <li><b>main</b> - main EGL library implementation. This is where all
+ the EGL API functions are implemented, like eglCreateContext().
+ </ul>
+ <li><b>mesa</b> - Main Mesa sources
+ <ul>
+ <li><b>glapi</b> - OpenGL API dispatch layer. This is where all the
+ GL entrypoints like glClear, glBegin, etc. are generated, as well as
+ the GL dispatch table. All GL function calls jump through the
+ dispatch table to functions found in main/.
+ <li><b>main</b> - The core Mesa code (mainly state management)
+ <li><b>drivers</b> - Mesa drivers (not used with Gallium)
+ <ul>
+ <li><b>common</b> - code which may be shared by all drivers
+ <li><b>dri</b> - Direct Rendering Infrastructure drivers
+ <ul>
+ <li><b>common</b> - code shared by all DRI drivers
+ <li><b>i915</b> - driver for Intel i915/i945
+ <li><b>i965</b> - driver for Intel i965
+ <li>XXX more
+ </ul>
+ <li><b>x11</b> - Xlib-based software driver
+ <li><b>osmesa</b> - off-screen software driver
+ <li><b>glslcompiler</b> - a stand-alone GLSL compiler driver
+ <li>XXX more
+ </ul>
+ <li><b>es</b> - OpenGL ES overlay, parallelly buildable with the core Mesa
+ <li><b>math</b> - vertex array translation and transformation code
+ (not used with Gallium)
+ <li><b>ppc</b> - Assembly code/optimizations for PPC systems
+ (not used with Gallium)
+ <li><b>shader</b> - Vertex/fragment shader and GLSL compiler code
+ <li><b>sparc</b> - Assembly code/optimizations for SPARC systems
+ (not used with Gallium)
+ <li><b>state_tracker</b> - State tracker / driver for Gallium. This
+ is basically a Mesa device driver that speaks to Gallium. This
+ directory may be moved to src/mesa/drivers/gallium at some point.
+ <li><b>swrast</b> - Software rasterization module. For drawing points,
+ lines, triangles, bitmaps, images, etc. in software.
+ (not used with Gallium)
+ <li><b>swrast_setup</b> - Software primitive setup. Does things like
+ polygon culling, glPolygonMode, polygon offset, etc.
+ (not used with Gallium)
+ <li><b>tnl</b> - Software vertex Transformation 'n Lighting.
+ (not used with Gallium)
+ <li><b>tnl_dd</b> - TNL code for device drivers.
+ (not used with Gallium)
+ <li><b>vbo</b> - Vertex Buffer Object code. All drawing with
+ glBegin/glEnd, glDrawArrays, display lists, etc. goes through this
+ module. The results is a well-defined set of vertex arrays which
+ are passed to the device driver (or tnl module) for rendering.
+ <li><b>vf</b> - vertex format conversion (currently unused)
+ <li><b>x86</b> - Assembly code/optimizations for 32-bit x86 systems
+ (not used with Gallium)
+ <li><b>x86-64</b> - Assembly code/optimizations for 64-bit x86 systems
+ (not used with Gallium)
+ </ul>
+ <li><b>gallium</b> - Gallium3D source code
+ <ul>
+ <li><b>include</b> - Gallium3D header files which define the Gallium3D
+ interfaces
+ <li><b>drivers</b> - Gallium3D device drivers
+ <ul>
+ <li><b>cell</b> - Driver for Cell processor.
+ <li><b>i915</b> - Driver for Intel i915/i945.
+ <li><b>i965</b> - Driver for Intel i965.
+ <li><b>llvmpipe</b> - Software driver using LLVM for runtime code generation.
+ <li><b>nv*</b> - Drivers for NVIDIA GPUs.
+ <li><b>r300</b> - Driver for ATI/AMD R300.
+ <li><b>softpipe</b> - Software reference driver.
+ <li><b>svga</b> - Driver for VMware's SVGA virtual GPU.
+ <li><b>trace</b> - Driver for tracing Gallium calls.
+ <li>XXX more
+ </ul>
+ <li><b>auxiliary</b> - Gallium support code
+ <ul>
+ <li><b>draw</b> - Software vertex processing and primitive assembly
+ module. This includes vertex program execution, clipping, culling
+ and optional stages for drawing wide lines, stippled lines,
+ polygon stippling, two-sided lighting, etc.
+ Intended for use by drivers for hardware that does not have
+ vertex shaders.
+ Geometry shaders will also be implemented in this module.
+ <li><b>cso_cache</b> - Constant State Objects Cache. Used to filter out
+ redundant state changes between state trackers and drivers.
+ <li><b>gallivm</b> - LLVM module for Gallium. For LLVM-based
+ compilation, optimization and code generation for TGSI shaders.
+ Incomplete.
+ <li><b>pipebuffer</b> - utility module for managing buffers
+ <li><b>rbug</b> - Gallium remote debug utility
+ <li><b>rtasm</b> - run-time assembly/machine code generation.
+ Currently there's run-time code generation for x86/SSE, PowerPC
+ and Cell SPU.
+ <li><b>tgsi</b> - TG Shader Infrastructure. Code for encoding,
+ manipulating and interpretting GPU programs.
+ <li><b>translate</b> - module for translating vertex data from one format
+ to another.
+ <li><b>util</b> - assorted utilities for arithmetic, hashing, surface
+ creation, memory management, 2D blitting, simple rendering, etc.
+ </ul>
+ <li><b>state_trackers</b> -
+ <ul>
+ <li><b>dri</b> - Meta state tracker for DRI drivers
+ <li><b>egl</b> - Meta state tracker for EGL drivers
+ <li><b>es</b> - OpenGL ES 1.x and 2.x state trackers
+ <li><b>g3dvl</b> -
+ <li><b>glx</b> - Meta state tracker for GLX
+ <li><b>python</b> -
+ <li><b>vega</b> - OpenVG 1.x state tracker
+ <li><b>wgl</b> -
+ <li><b>xorg</b> - Meta state tracker for Xorg video drivers
+ </ul>
+ <li><b>winsys</b> -
+ <ul>
+ <li><b>drm</b> -
+ <li><b>g3dvl</b> -
+ <li><b>gdi</b> -
+ <li><b>xlib</b> -
+ </ul>
+ </ul>
+ </ul>
+ <ul>
+ <li><b>glu</b> - The OpenGL Utility library
+ <ul>
+ <li><b>sgi</b> - GLU from SGI
+ <li><b>mesa</b> - Mesa version of GLU (deprecated)
+ </ul>
+ <li><b>glx</b> - The GLX library code for building libGL. This is used for
+ direct rendering drivers. It will dynamically load one of the
+ xxx_dri.so drivers.
+ <li><b>glw</b> - Widgets for Xt/Motif.
+ <li><b>glew</b> - OpenGL Extension Wrangler library (used by demo programs)
+ </ul>
+<li><b>progs</b> - OpenGL test and demonstration programs
+<li><b>lib</b> - where the GL libraries are placed
+</ul>
+
+
+</BODY>
+</HTML>