has to know which GL context is current in the thread where it is being
called.</p>
-<A NAME="overview"/>
-<H2>2. Overview of Mesa's Implementation</H2>
+<h2 id="overview">2. Overview of Mesa's Implementation</h2>
<p>Mesa uses two per-thread pointers. The first pointer stores the address
of the context current in the thread, and the second pointer stores the
<tt>src/mesa/glapi/glapi_dispatch.c</tt> to prevent the C version of the
dispatch functions from being built.</p>
-<A NAME="fixedsize"/>
-<H3>3.4. Fixed-Length Dispatch Stubs</H3>
+<h3 id="fixedsize">3.4. Fixed-Length Dispatch Stubs</h3>
<p>To implement <tt>glXGetProcAddress</tt>, Mesa stores a table that
associates function names with pointers to those functions. This table is
<tt>src/mesa/glapi/glapi.c</tt> just before <tt>glprocs.h</tt> is
included.</p>
-<A NAME="autogen"/>
-<H2>4. Automatic Generation of Dispatch Stubs</H2>
+<h2 id="autogen">4. Automatic Generation of Dispatch Stubs</h2>
</body>
</html>
-<a name="part1">
-</a><h1><a name="part1">1. High-level Questions and Answers</a></h1>
+<h1 id="part1">1. High-level Questions and Answers</h1>
-<h2><a name="part1">1.1 What is Mesa?</a></h2>
+<h2>1.1 What is Mesa?</h2>
<p>
-<a name="part1">Mesa is an open-source implementation of the OpenGL specification.
+Mesa is an open-source implementation of the OpenGL specification.
OpenGL is a programming library for writing interactive 3D applications.
-See the </a><a href="http://www.opengl.org/">OpenGL website</a> for more
+See the <a href="http://www.opengl.org/">OpenGL website</a> for more
information.
</p>
<p>
<br>
-<a name="part2">
-</a><h1><a name="part2">2. Compilation and Installation Problems</a></h1>
+<h1 id="part2">2. Compilation and Installation Problems</h1>
-<h2><a name="part2">2.1 What's the easiest way to install Mesa?</a></h2>
+<h2>2.1 What's the easiest way to install Mesa?</h2>
<p>
-<a name="part2">If you're using a Linux-based system, your distro CD most likely already
+If you're using a Linux-based system, your distro CD most likely already
has Mesa packages (like RPM or DEB) which you can easily install.
-</a></p>
+</p>
-<h2><a name="part2">2.2 I get undefined symbols such as bgnpolygon, v3f, etc...</a></h2>
+<h2>2.2 I get undefined symbols such as bgnpolygon, v3f, etc...</h2>
<p>
-<a name="part2">You're application is written in IRIS GL, not OpenGL.
+You're application is written in IRIS GL, not OpenGL.
IRIS GL was the predecessor to OpenGL and is a different thing (almost)
entirely.
Mesa's not the solution.
-</a></p>
+</p>
-<h2><a name="part2">2.3 Where is the GLUT library?</a></h2>
+<h2>2.3 Where is the GLUT library?</h2>
<p>
-<a name="part2">GLUT (OpenGL Utility Toolkit) is no longer in the separate MesaGLUT-x.y.z.tar.gz file.
+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>
+</p>
-<h2><a name="part2">2.4 Where is the GLw library?</a></h2>
+<h2>2.4 Where is the GLw library?</h2>
<p>
-<a name="part2">GLw (OpenGL widget library) is now available from a separate <a href="http://cgit.freedesktop.org/mesa/glw/">git repository</a>. Unless you're using very old Xt/Motif applications with OpenGL, you shouldn't need it.
-</a></p>
+GLw (OpenGL widget library) is now available from a separate <a href="http://cgit.freedesktop.org/mesa/glw/">git repository</a>. Unless you're using very old Xt/Motif applications with OpenGL, you shouldn't need it.
+</p>
-<h2><a name="part2">2.5 What's the proper place for the libraries and headers?</a></h2>
+<h2>2.5 What's the proper place for the libraries and headers?</h2>
<p>
-<a name="part2">On Linux-based systems you'll want to follow the
-</a><a href="http://oss.sgi.com/projects/ogl-sample/ABI/index.html"
+On Linux-based systems you'll want to follow the
+<a href="http://oss.sgi.com/projects/ogl-sample/ABI/index.html"
target="_parent">Linux ABI</a> standard.
Basically you'll want the following:
</p>
<br>
-<a name="part3">
-</a><h1><a name="part3">3. Runtime / Rendering Problems</a></h1>
+<h1 id="part3">3. Runtime / Rendering Problems</h1>
-<h2><a name="part3">3.1 Rendering is slow / why isn't my graphics hardware being used?</a></h2>
+<h2>3.1 Rendering is slow / why isn't my graphics hardware being used?</h2>
<p>
-<a name="part3">Stand-alone Mesa (downloaded as MesaLib-x.y.z.tar.gz) doesn't have any
+Stand-alone Mesa (downloaded as MesaLib-x.y.z.tar.gz) doesn't have any
support for hardware acceleration (with the exception of the 3DFX Voodoo
driver).
-</a></p>
+</p>
<p>
-<a name="part3">What you really want is a DRI or NVIDIA (or another vendor's OpenGL) driver
+What you really want is a DRI or NVIDIA (or another vendor's OpenGL) driver
for your particular hardware.
-</a></p>
+</p>
<p>
-<a name="part3">You can run the <code>glxinfo</code> program to learn about your OpenGL
+You can run the <code>glxinfo</code> program to learn about your OpenGL
library.
Look for the GL_VENDOR and GL_RENDERER values.
That will identify who's OpenGL library you're using and what sort of
hardware it has detected.
-</a></p>
+</p>
<p>
-<a name="part3">If your DRI-based driver isn't working, go to the
-</a><a href="http://dri.sf.net/" target="_parent">DRI website</a> for trouble-shooting information.
+If your DRI-based driver isn't working, go to the
+<a href="http://dri.sf.net/" target="_parent">DRI website</a> for trouble-shooting information.
</p>
<br>
-<a name="part4">
-</a><h1><a name="part4">4. Developer Questions</a></h1>
+<h1 id="part4">4. Developer Questions</h1>
-<h2>4.1 How can I contribute?</a></h2>
+<h2>4.1 How can I contribute?</h2>
<p>
First, join the <a href="http://www.mesa3d.org/lists.html">Mesa3d-dev
mailing list</a>.
</ol>
-<a name="prereq-general">
-<h1>1. Prerequisites for building</h1>
+<h1 id="prereq-general">1. Prerequisites for building</h1>
<h2>1.1 General</h2>
<ul>
</ul>
-<a name="prereq-dri">
-<h3>1.2 For DRI and hardware acceleration</h3>
+<h3 id="prereq-dri">1.2 For DRI and hardware acceleration</h3>
<p>
The following are required for DRI-based hardware acceleration with Mesa:
-<a name="autoconf">
-<H1>2. Building with autoconf (Linux/Unix/X11)</H1>
+<H1 id="autoconf">2. Building with autoconf (Linux/Unix/X11)</H1>
<p>
The primary method to build Mesa on Unix systems is with autoconf.
-<a name="scons">
-<H1>3. Building with SCons (Windows/Linux)</H1>
+<H1 id="scons">3. Building with SCons (Windows/Linux)</H1>
<p>
To build Mesa with SCons on Linux or Windows do
-<a name="other">
-<H1>4. Building for other systems</H1>
+<H1 id="other">4. Building for other systems</H1>
<p>
Documentation for other environments (some may be very out of date):
-<a name="libs">
-<H1>5. Library Information</H1>
+<H1 id="libs">5. Library Information</H1>
<p>
When compilation has finished, look in the top-level <code>lib/</code>
</p>
-<a name="pkg-config">
-<H1>6. Building OpenGL programs with pkg-config</H1>
+<H1 id="pkg-config">6. Building OpenGL programs with pkg-config</H1>
<p>
Running <code>make install</code> will install package configuration files
</p>
-<a name="anonymous">
-<H2>Anonymous git Access</H2>
+<h2 id="anonymous">Anonymous git Access</h2>
<p>
To get the Mesa sources anonymously (read-only):
</ol>
-<a name="developer">
-<H2>Developer git Access</H2>
+<h2 id="developer">Developer git Access</h2>
<p>
Mesa developers need to first have an account on
<br>
-<a name="developer">
-<H2>Development Branches</H2>
+<h2>Development Branches</h2>
<p>
At any given time, there may be several active branches in Mesa's
</p>
<ul>
<li><a href="#envvars">Environment variables</a>
-<li><a href="#120">GLSL 1.20 support</a>
+<li><a href="#glsl120">GLSL 1.20 support</a>
<li><a href="#unsup">Unsupported Features</a>
<li><a href="#notes">Implementation Notes</a>
<li><a href="#hints">Programming Hints</a>
</ul>
-
-<a name="envvars">
-<h2>Environment Variables</h2>
+<h2 id="envvars">Environment Variables</h2>
<p>
The <b>MESA_GLSL</b> environment variable can be set to a comma-separated
</p>
-<a name="120">
-<h2>GLSL Version</h2>
+<h2 id="glsl120">GLSL Version</h2>
<p>
The GLSL compiler currently supports version 1.20 of the shading language.
</ul>
-<a name="unsup">
-<h2>Unsupported Features</h2>
+<h2 id="unsup">Unsupported Features</h2>
<p>XXX update this section</p>
</p>
-<a name="notes">
-<h2>Implementation Notes</h2>
+<h2 id="notes">Implementation Notes</h2>
<ul>
<li>Shading language programs are compiled into low-level programs
</p>
-<a name="hints">
-<h2>Programming Hints</h2>
+<h2 id="hints">Programming Hints</h2>
<ul>
<li>Use the built-in library functions whenever possible.
</ul>
-<a name="standalone">
-<h2>Stand-alone GLSL Compiler</h2>
+<h2 id="standalone">Stand-alone GLSL Compiler</h2>
<p>
The stand-alone GLSL compiler program can be used to compile GLSL shaders
</ul>
-
-
-<a name="implementation">
-<h2>Compiler Implementation</h2>
+<h2 id="implementation">Compiler Implementation</h2>
<p>
The source code for Mesa's shading language compiler is in the
</ul>
-<a name="validation">
-<h2>Compiler Validation</h2>
+<h2 id="validation">Compiler Validation</h2>
<p>
Developers working on the GLSL compiler should test frequently to avoid