Commit [3aabbe] Maximize Restore History

documentation update

git-svn-id: https://glew.svn.sourceforge.net/svnroot/glew/trunk/glew@352 783a27ee-832a-0410-bc00-9f386506c6dd

ikits ikits 2005-01-05

added doc/index.html
added doc/install.html
added doc/log.html
added doc/basic.html
added doc/credits.html
changed auto/src/template.html
changed doc/glew.css
copied doc/README.html -> doc/advanced.html
doc/index.html Diff Switch to side-by-side view
Loading...
doc/install.html Diff Switch to side-by-side view
Loading...
doc/log.html Diff Switch to side-by-side view
Loading...
doc/basic.html Diff Switch to side-by-side view
Loading...
doc/credits.html Diff Switch to side-by-side view
Loading...
auto/src/template.html Diff Switch to side-by-side view
Loading...
doc/glew.css Diff Switch to side-by-side view
Loading...
doc/README.html to doc/advanced.html
--- a/doc/README.html
+++ b/doc/advanced.html
@@ -1,10 +1,11 @@
 <!--
- Copyright (C) 2004, 2003, 2002, Milan Ikits <milan ikits[at]ieee org>
- Copyright (C) 2004, 2003, 2002, Marcelo E. Magallon <mmagallo[at]debian org>
+ Copyright (C) 2002-2005 Milan Ikits <milan ikits[]ieee org>
+ Copyright (C) 2002-2005, Marcelo E. Magallon <mmagallo[]debian org>
  This documentation may not be modified or redistributed in any
  form, except by the copyright holder.
 -->
 <!doctype html public "-//w3c//dtd html 4.01 transitional//en" "http://www.w3.org/TR/html/4/loose.dtd">
+<!-- &nbsp;<img src="new.png" height="12" alt="NEW!"> -->
 <html>
 <head>
 <title>
@@ -14,462 +15,175 @@
 <link href="glew.css" type=text/css rel=stylesheet>
 </head>
 <body bgcolor="#fff0d0">
+
+<!-- -------------------------------------------------------------------------- -->
+
+<table border="0" width="100%" height="100%" cellpadding="12" cellspacing="8">
+<tr>
+<td bgcolor="#ffffff" align="left" valign="top" width="200">
+<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
+<tr>
+<td valign="top">
+<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
+<tr><td align="center"><br></td></tr>
+<tr><td align="center"><img src="./glew.png" alt="GLEW Logo" width="97" height="75"></td></tr>
+<tr><td align="center"><br></td></tr>
+<tr><td align="center">
+<table border="0" cellpadding="0" cellspacing="0" align="center">
+<tr><td align="center"><a href="index.html">Home</a></td></tr>
+<tr><td align="center"><a href="install.html">Installation</a></td></tr>
+<tr><td align="center"><a href="basic.html">Basic Usage</td></tr>
+<tr><td align="center"><b>Advanced Usage</b></td></tr>
+<tr><td align="center"><a href="credits.html">Credits & Copyright</a></td></tr>
+<tr><td align="center"><a href="log.html">Change Log</a></td></tr>
+<tr><td align="center"><a href="http://sourceforge.net/projects/glew/">Project Page</a></td></tr>
+<tr><td align="center"><a href="http://sourceforge.net/tracker/?group_id=67586">Bug Tracker</a></td></tr>
+</table>
+<tr><td align="center"><br></tr>
+</table>
+</td>
+</tr>
+<tr>
+<td valign="bottom">
+<table border="0" width="100%" cellpadding="5" cellspacing="0" align="left">
+<tr><td align="center"><i>Last Update: 01-04-05</i></td></tr>
+</table>
+</td>
+</tr>
+</table>
+</td>
+
+<!-- -------------------------------------------------------------------------- -->
+
+<td bgcolor="#ffffff" align="left" valign="top">
+<h1>The OpenGL Extension Wrangler Library</h1>
+
+<h2>Automatic Code Generation</h2>
+
+<p>
+Starting from release 1.1.0, the source code and parts of the
+documentation are automatically generated from the extension
+specifications in a two-step process.  In the first step,
+specification files from the OpenGL registry are downloaded and
+parsed. Skeleton descriptors are created for each extension.  These
+descriptors contain all necessary information for creating the source
+code and documentation in a simple and compact format, including the
+name of the extension, url link to the specification, tokens, function
+declarations, typedefs and struct definitions.  In the second step,
+the header files as well as the library and glewinfo source are
+generated from the descriptor files.  The code generation scripts are
+located in the <tt>auto</tt> subdirectory.
+</p>
+
+<p>
+The code generation scripts require GNU make, wget, and perl. On
+Windows, the simplest way to get access to these tools is to install
+<a href="http://www.cygwin.com/">Cygwin</a>. The makefile in the
+<tt>auto</tt> directory provides the following build targets:
+</p>
+
 <center>
-<table border=0 width="60%" cellpadding="5" cellspacing="5">
-<tr>
-<td bgcolor="#ffffff" align=center><br><p><img src="./glew.png" alt="glew" width="97" height="75">
-<p>
-<h1>The OpenGL Extension Wrangler Library</h1>
-<p>
-<table border=0 cellpadding=0 cellspacing=0 align=center>
-<tr><td align=center><a href="#Introduction"><small>Introduction</small></a></td></tr>
-<tr><td align=center><a href="#Download"><small>Obtaining GLEW</small></a></td></tr>
-<tr><td align=center><a href="#Supported"><small>Supported Extensions</small></a></td></tr>
-<tr><td align=center><a href="#Build"><small>How to Build Your Project with GLEW</small></a></td></tr>
-<tr><td align=center><a href="#Install"><small>How to Install GLEW</small></a></td></tr>
-<tr><td align=center><a href="#Use"><small>How to Use GLEW</small></a></td></tr>
-<tr><td align=center><a href="#Utilities"><small>Utilities</small></a></td></tr>
-<tr><td align=center>
-<a href="#Auto"><small>Automatic Code Generation</small></a>
-</td></tr>
-<tr><td align=center>
-<a href="#Namespace"><small>Separate Namespace</small></a>
-</td></tr>
-<tr><td align=center>
-<a href="#Context"><small>Multiple Rendering Contexts (GLEW MX)</small></a>
-</td></tr>
-<tr><td align=center><a href="#Issues"><small>Known Issues</small></a></td></tr>
-<tr><td align=center><a href="#Credits"><small>Credits, Copyright</small></a></td></tr>
-<tr><td align=center><a href="#Log"><small>Change Log</small></a></td></tr>
-<tr><td align=center><a href="http://sourceforge.net/tracker/?group_id=67586">
-<tr><td align=center><br></td></tr>
-</table>
-</tr>
-
-<tr><td bgcolor="#fff0d0" align="center"></td></tr>
-
-<tr>
-<td bgcolor="#ffffff">
-<center><a name="Introduction"><h2>Introduction</h2></a></center>
-<p>
-
-The goal of the OpenGL Extension Wrangler Library (GLEW) is to assist
-C/C++ OpenGL developers with two tedious tasks: initializing and using
-extensions and writing portable applications. GLEW provides an
-efficient run-time mechanism to determine whether a certain extension
-is supported by the driver or not. OpenGL core and extension
-functionality is exposed via a single header file. GLEW currently
-supports a variety of platforms and operating systems, including
-Windows, Linux, Darwin, Irix, and Solaris.
-<p>
-</td>
-</tr>
-
-<tr><td bgcolor="#fff0d0" align="center"></td></tr>
-
-<tr>
-<td bgcolor="#ffffff">
-<center><a name="Download"><h2>Obtaining GLEW</h2></a></center>
-<p>
-Source and precompiled binaries are available at the <a
-href="http://glew.sourceforge.net/">project website</a>.
-
-<p>
-</td>
-</tr>
-
-<tr><td bgcolor="#fff0d0" align="center"></td></tr>
-
-<tr>
-<td  bgcolor="#ffffff">
-<center><a name="Supported"><h2>Supported Extensions</h2></a></center>
-<p>
-GLEW currently supports the following extensions:
-<ul>
-<li><a href="glew.html">OpenGL extensions</a>
-<li><a href="wglew.html">WGL extensions</a>
-<li><a href="glxew.html">GLX extensions</a>
-</ul>
-<p>
-Useful links about OpenGL extensions:
-<ul>
-<li><a
-href="http://www.opengl.org/resources/features/OGLextensions/">
-All About OpenGL Extensions</a>
-<li><a href="http://oss.sgi.com/projects/ogl-sample/registry/">OpenGL Extension Registry</a>
-<li><a
-href="http://www.ati.com/developer/sdk/radeonSDK/html/info/Prog3D.html">ATI
-OpenGL Extension Specifications</a>
-<li><a
-href="http://developer.apple.com/opengl/extensions.html">
-APPLE OpenGL Extensions Guide</a>
-<li><a
-href="http://developer.nvidia.com/view.asp?IO=nvidia_opengl_specs">NVIDIA
-OpenGL Extension Specifications</a>
-</ul>
-<p>
-</td>
-</tr>
-
-<tr><td bgcolor="#fff0d0" align="center"></td></tr>
-
-<tr>
-<td bgcolor="#ffffff">
-
-<center><a name="Build"><h2>How to Build Your Project with GLEW</h2></a></center>
-<p>
-
-There are two ways to build your project with GLEW.
-<p>
-
-<h3>Including the source files / project file</h3>
-<p>
-
-The simpler but less flexible way is to include <tt>glew.h</tt> and
-<tt>glew.c</tt> into your project and define the <tt>GLEW_STATIC</tt>
-preprocessor constant for the static library or executable you are
-building together with GLEW (Windows only).  You also need to replace
-<tt>&lt;GL/gl.h&gt;</tt> and <tt>&lt;GL/glu.h&gt;</tt> with
-<tt>&lt;glew.h&gt;</tt> in your code and set the appropriate include
-flag (<tt>-I</tt>) to tell the compiler where to look for it.  For
-example:
-
-<blockquote><pre>#include &lt;glew.h&gt;
-#include &lt;GL/glut.h&gt;
-&lt;gl, glu, and glut functionality is available here&gt;
-</pre></blockquote>
-
-Depending on where you put <tt>glew.h</tt> you may also need to change
-the include directives in <tt>glew.c</tt>. Note that if you are using
-GLEW together with GLUT, you have to include <tt>glew.h</tt> first.
-In addition, <tt>glew.h</tt> includes <tt>glu.h</tt>, so you don't
-need to include it separately.
-
-<p>
-On Windows you also have the option of adding the supplied project
-file <tt>glew_static.dsp</tt> to your workspace (solution) and compile
-it together with your other projects.  In this case you need to change
-the <tt>GLEW_BUILD</tt> preprocessor constant to <tt>GLEW_STATIC</tt>,
-otherwise you get build errors. <b>Note that GLEW does not use the C
-runtime library, so it does not matter which version (single-threaded,
-multi-threaded or multi-threaded DLL) it is linked with (without
-debugging information). It is, however, always a good idea to compile all
-your projects including GLEW with the same C runtime settings.</b>
-
-<p>
-
-<h3>Using GLEW as a shared library</h3>
-<p>
-
-Alternatively, you can use the provided project files / makefile to
-build a separate shared library you can link your projects with later.
-In this case the best practice is to install <tt>glew.h</tt>,
-<tt>glew32.lib</tt>, and <tt>glew32.dll</tt> / <tt>libGLEW.so</tt> to
-where the OpenGL equivalents <tt>gl.h</tt>, <tt>opengl32.lib</tt>, and
-<tt>opengl32.dll</tt> / <tt>libGL.so</tt> are located.  Note that you
-need administrative privileges to do this.  If you do not have
-administrator access and your system administrator will not do it for
-you, you can install GLEW into your own lib and include subdirectories
-and tell the compiler where to find it. Then you can just replace
-<tt>&lt;GL/gl.h&gt;</tt> with <tt>&lt;GL/glew.h&gt;</tt> in your
-program:
-
-<blockquote><pre>#include &lt;GL/glew.h&gt;
-#include &lt;GL/glut.h&gt;
-&lt;gl, glu, and glut functionality is available here&gt;
-</pre></blockquote>
-
-or:
-
-<blockquote><pre>#include &lt;GL/glew.h&gt;
-&lt;gl and glu functionality is available here&gt;
-</pre></blockquote>
-
-<p>
-Don't forget to link your project with <tt>glew32.lib</tt>,
-<tt>glu32.lib</tt>, and <tt>opengl32.lib</tt> on Windows and
-<tt>libGLEW.so</tt>, <tt>libGLU.so</tt>, and <tt>libGL.so</tt> on
-Linux and IRIX (<tt>-lGLEW -lGLU -lGL</tt>).
-
-<p>
-It is important to keep in mind that <tt>glew.h</tt> includes neither
-<tt>windows.h</tt> nor <tt>gl.h</tt>.  Also, GLEW will warn you by
-issuing a preprocessor error in case you have included <tt>gl.h</tt>,
-<tt>glext.h</tt>, or <tt>glATI.h</tt> before <tt>glew.h</tt>.
-<p>
-</td>
-</tr>
-
-<tr><td bgcolor="#fff0d0" align="center"></td></tr>
-
-<tr>
-<td bgcolor="#ffffff">
-
-<center><a name="Install"><h2>How to Install GLEW</h2></a></center>
-
-<p>
-To install the shared library version of GLEW you need to copy the
-headers and libraries into their destination directories. On Windows
-this boils down to copying (no, we will not write a Windows installer
-for you).
-<p>
-
-<center>
-<table border=0 cellpadding=0 cellspacing=0>
-<tr><td><tt>lib/glew32.dll</tt></td><td>&nbsp;&nbsp;&nbsp;&nbsp;to&nbsp;&nbsp;&nbsp;&nbsp;</td>
-<td><tt>%SystemRoot%/system32</tt></td></tr>
-<tr><td><tt>lib/glew32.lib</tt></td><td>&nbsp;&nbsp;&nbsp;&nbsp;to&nbsp;&nbsp;&nbsp;&nbsp;</td>
-<td><tt>{VC Root}/Lib</tt></td></tr>
-<tr><td><tt>include/GL/glew.h</tt></td><td>&nbsp;&nbsp;&nbsp;&nbsp;to&nbsp;&nbsp;&nbsp;&nbsp;</td>
-<td><tt>{VC Root}/Include/GL</tt></td></tr>
-<tr><td><tt>include/GL/wglew.h</tt></td><td>&nbsp;&nbsp;&nbsp;&nbsp;to&nbsp;&nbsp;&nbsp;&nbsp;</td>
-<td><tt>{VC Root}/Include/GL</tt></td></tr>
+<table border=0 cellpadding=0 cellspacing=0> <!-- bgcolor="#f0f0f0" -->
+<tr><td align="right" valign="top" width="25%"><tt>make</tt></td>
+<td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
+<td align=left>Create the source files from the descriptors. If the
+descriptors do not exist, create them from the spec files. If the spec
+files do not exist, download them from the OpenGL repository.</td></tr>
+<tr><td align="right" valign="top"><tt>make clean</tt></td>
+<td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
+<td align=left>Delete the source files.</td></tr>
+<tr><td align="right" valign="top"><tt>make clobber</tt></td>
+<td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
+<td align=left>Delete the source files and the descriptors.</td></tr>
+<tr><td align="right" valign="top"><tt>make destroy</tt></td>
+<td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
+<td align=left>Delete the source files, the descriptors, and the spec files.</td></tr>
+<tr><td align="right" valign="top"><tt>make custom</tt></td>
+<td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
+<td align=left>Create the source files for the extensions
+listed in <tt>auto/custom.txt</tt>. See "Custom Code
+Generation" below for more details.</td></tr>
 </table>
 </center>
-<p>
-
-where <tt>{VC Root}</tt> is your Visual C++ directory, typically
-<tt>C:/Program Files/Microsoft Visual Studio/VC98</tt> for Visual
-Studio 6.0 or <tt>C:/Program Files/Microsoft Visual
-Studio/Vc7/PlatformSDK</tt> for Visual Studio .NET.
-
-<p>
-On Linux and IRIX, typing <tt>"make install"</tt> will attempt to install GLEW
-into <tt>/usr/include/GL</tt> and <tt>/usr/lib</tt>.  You can 
-customize the installation target via the <tt>GLEW_DEST</tt>
-environment variable if you do not have write access
-to these directories.
-<p>
-</td>
-</tr>
-
-<tr><td bgcolor="#fff0d0" align="center"></td></tr>
-
-<tr>
-<td bgcolor="#ffffff">
-
-<center><a name="Use"><h2>How to Use GLEW</h2></a></center>
-<p>
-
-<h3>Initializing GLEW</h3>
-<p>
-
-First you need to create a valid OpenGL rendering context and call
-<tt>glewInit()</tt> to initialize the extension entry points.  If
-<tt>glewInit()</tt> returns <tt>GLEW_OK</tt>, the initialization
-succeeded and you can use the available extensions as well as core
-OpenGL functionality. For example:
-
-<blockquote><pre>#include &lt;GL/glew.h&gt;
-#include &lt;GL/glut.h&gt;
-...
-glutInit(&amp;argc, argv);
-glutCreateWindow("GLEW Test");
-GLenum err = glewInit();
-if (GLEW_OK != err)
-{
-  /* problem: glewInit failed, something is seriously wrong */
-  fprintf(stderr, "Error: %s\n", glewGetErrorString(err));
-  ...
-}
-fprintf(stdout, "Status: Using GLEW %s\n", glewGetString(GLEW_VERSION));
-</pre></blockquote>
-
-<p>
-
-<h3>Querying the available OpenGL extensions</h3>
-<p>
-
-Starting from GLEW 1.1.0, you can find out if a particular extension
-is available on your platform by querying globally defined variables
-of the form <tt>GLEW_{extension_name}</tt>:
-
-<blockquote><pre>if (GLEW_ARB_vertex_program)
-{
-  /* it is safe to use the ARB_vertex_program extension here */
-  glGenProgramsARB(...);
-}
-</pre></blockquote>
-
-<b>In GLEW 1.0.x, a global structure was used for this task. To ensure
-binary compatibility between releases, the struct was replaced with a
-set of variables.</b>
-
-<p>
-
-You can also check for core OpenGL functionality.  For example, to
-see if OpenGL 1.3 is supported:
-
-<blockquote><pre>if (GLEW_VERSION_1_3)
-{
-  /* Yay! OpenGL 1.3 is supported! */
-}
-</pre></blockquote>
-
-In general, you can check if <tt>GLEW_{extension_name}</tt> or
-<tt>GLEW_VERSION_{version}</tt> is set or not.
-
-<p>
-
-For extensions <tt>glewGetExtension</tt> provides a slower alternative:
-
-<blockquote><pre>if (GL_TRUE == glewGetExtension("GL_ARB_fragment_program"))
-{
-  /* Looks like ARB_fragment_program is supported. */
-}
-</pre></blockquote>
-
-
-<p>
-
-<h3>Experimental drivers</h3>
-<p>
-
-GLEW works by querying the supported extensions from the graphics
-driver.  Experimental drivers, however, might not report every
-available extension through the standard mechanism, in which case GLEW
-will report it unsupported.  To circumvent this situation, the
-<tt>glewExperimental</tt> global switch can be turned on by setting it
-to <tt>GL_TRUE</tt> before calling <tt>glewInit()</tt>.  This makes
-sure that all extensions with valid entry points will be exposed.
-
-<p>
-
-<h3>Platform specific extensions</h3>
-<p>
-
-Platform specific extensions are separated into two header files:
-<tt>wglew.h</tt> and <tt>glxew.h</tt>, which define the available
-<tt>WGL</tt> and <tt>GLX</tt> extensions.  To determine if a certain
-extension is supported, query <tt>WGLEW_{extension name}</tt> or
-<tt>GLXEW_{extension_name}</tt>.  For example:
-
-<blockquote><pre>#include &lt;GL/wglew.h&gt;
-
-if (WGLEW_ARB_pbuffer)
-{
-  /* OK, we can use pbuffers */
-}
-else
-{
-  /* Sorry, pbuffers will not work on this platform */
-}
-</pre></blockquote>
-
-<tr><td bgcolor="#fff0d0" align="center"></td></tr>
-
-<tr>
-<td bgcolor="#ffffff">
-
-<center><a name="Utilities"><h2>Utilities</h2></a></center>
-<p>
-
-GLEW provides two command line tools: one for creating a list of
-available extensions and visuals; and another for verifying extension
-entry points.
-
-<p>
-
-<h3>visualinfo: extensions and visuals</h3>
-<p>
-
-<tt>visualinfo</tt> is an extended version of <tt>glxinfo</tt>. On
-Windows, by default it creates a file called <tt>visualinfo.txt</tt>
-that contains a list of available OpenGL, WGL, and GLU extensions as
-well as a table of visuals aka. pixel formats. Pbuffer and multiple
-output capable visuals are also included. For additional usage
-information, type <tt>visualinfo -h</tt>.
-
-<p>
-
-<h3>glewinfo: extension verification utility</h3>
-<p>
-
-<tt>glewinfo</tt> allows you to verify the entry points for the
-extensions supported on your platform. It uses GLEW to find out which
-extensions and entry points are available. On Windows it reports the
-results to a text file called <tt>glewinfo.txt</tt>, on Unix it prints
-them to <tt>stdout</tt>.  <p>
-
-Windows Usage: <blockquote><pre>glewinfo [-pf &lt;id&gt;]</pre></blockquote>
-
-where <tt>&lt;id&gt;</tt> is the pixelformat id for which the
-capabilities are displayed.
-
-<p>
-Unix Usage:
-<blockquote><pre>glewinfo [-display &lt;dpy&gt;] [-visual &lt;id&gt;]</pre></blockquote>
-
-where <tt>&lt;dpy&gt;</tt> is the X11 display and <tt>&lt;id&gt;</tt> is
-the visual id for which the capabilities are displayed.
-<p>
-</td>
-</tr>
-
-
-<tr><td bgcolor="#fff0d0" align="center"></td></tr>
-
-<tr>
-<td bgcolor="#ffffff">
-
-<center><a name="Auto"><h2>Automatic Code Generation</h2></a></center>
-<p>
-
-Starting with release 1.1.0, the source code and parts of the
-documentation are automatically generated from the extension
-specifications via a two-step process.  In the first step,
-specification files from the OpenGL registry are parsed and skeleton
-descriptors are created for each extension.  These descriptors contain
-all necessary information for creating the source code and
-documentation in a simple and compact format, including the name of
-the extension, url, tokens, function declarations, typedefs and struct
-definitions.  In the second step, the header files as well as the
-library and glewinfo source are generated from the descriptor
-files. The code generation scripts are located in the <tt>auto</tt>
-subdirectory.
-
-<p>
-
-</td>
-</tr>
-
-<tr><td bgcolor="#fff0d0" align="center"></td></tr>
-
-<tr>
-<td bgcolor="#ffffff">
-
-<center><a name="Namespace"><h2>Separate Namespace</h2></a></center>
-<p>
-
-To avoid name clashes when linking with libraries that include the
-same symbol, extension entry points are declared in a separate
-namespace (release 1.1.0 and up). This is achieved by aliasing OpenGL
-function names to their GLEW equivalents. For instance,
-<tt>glFancyFunction</tt> is simply an alias to
-<tt>glewFancyFunction</tt>.  Note that the separate namespace doesn't
-effect token and function pointer definitions.
-<p>
-
-</td>
-</tr>
-
-
-<tr><td bgcolor="#fff0d0" align="center"></td></tr>
-
-<tr>
-<td bgcolor="#ffffff">
-
-<center><a name="Context"><h2>Multiple Rendering
-Contexts (GLEW MX)</h2></a></center> 
-<p>
-
-Starting with release 1.2.0, thread-safe support for multiple
-rendering contexts (possibly with different capabilities) is
+
+<h3>Adding a New Extension</h3>
+
+<p>
+To add a new extension, create a descriptor file for the extension in
+<tt>auto/core</tt> and rerun the code generation scripts by typing
+<tt>make clean; make</tt> in the <tt>auto</tt> directory.
+</p>
+
+<p>
+The format of the descriptor file is given below. Items in
+brackets are optional.
+</p>
+
+<p class="pre">
+&lt;Extension Name&gt;<br>
+[&lt;URL of Specification File&gt;]<br>
+&nbsp;&nbsp;&nbsp;&nbsp;[&lt;Token Name&gt; &lt;Token Value&gt;]<br>
+&nbsp;&nbsp;&nbsp;&nbsp;[&lt;Token Name&gt; &lt;Token Value&gt;]<br>
+&nbsp;&nbsp;&nbsp;&nbsp;...<br>
+&nbsp;&nbsp;&nbsp;&nbsp;[&lt;Typedef&gt;]<br>
+&nbsp;&nbsp;&nbsp;&nbsp;[&lt;Typedef&gt;]<br>
+&nbsp;&nbsp;&nbsp;&nbsp;...<br>
+&nbsp;&nbsp;&nbsp;&nbsp;[&lt;Function Signature&gt;]<br>
+&nbsp;&nbsp;&nbsp;&nbsp;[&lt;Function Signature&gt;]<br>
+&nbsp;&nbsp;&nbsp;&nbsp;...<br>
+<!-- &nbsp;&nbsp;&nbsp;&nbsp;[&lt;Function Definition&gt;]<br>
+&nbsp;&nbsp;&nbsp;&nbsp;[&lt;Function Definition&gt;]<br>
+&nbsp;&nbsp;&nbsp;&nbsp;...<br> -->
+</p>
+
+<!--
+<p>
+Note that <tt>Function Definitions</tt> are copied to the header files
+without changes and have to be terminated with a semicolon. In
+contrast, <tt>Tokens</tt>, <tt>Function signatures</tt>, and
+<tt>Typedefs</tt> should not be terminated with a semicolon.
+</p>
+-->
+
+<p>
+Take a look at one of the files in <tt>auto/core</tt> for an
+example. Note that typedefs and function signatures should not be
+terminated with a semicolon.
+</p>
+
+<h3>Custom Code Generation</h3>
+<p>
+Starting from GLEW 1.3.0, it is possible to control which extensions
+to include in the libarary by specifying a list in
+<tt>auto/custom.txt</tt>. This is useful when you do not need all the
+extensions and would like to reduce the size of the source files.
+Type <tt>make clean; make custom</tt> in the <tt>auto</tt> directory
+to rerun the scripts with the custom list of extensions.
+</p>
+
+<p>
+For example, the following is the list of extensions needed to get GLEW and the
+utilities to compile.
+</p>
+
+<p class="pre">
+WGL_ARB_extensions_string<br>
+WGL_ARB_multisample<br>
+WGL_ARB_pixel_format<br>
+WGL_ARB_pbuffer<br>
+WGL_EXT_extensions_string<br>
+WGL_ATI_pixel_format_float<br>
+WGL_NV_float_buffer<br>
+</p>
+
+<h2>Multiple Rendering Contexts (GLEW MX)</h2>
+
+<p>Starting with release 1.2.0, thread-safe support for multiple
+rendering contexts, possibly with different capabilities, is
 available. Since this is not required by most users, it is not added
 to the binary releases to maintain compatibility between different
 versions. To include multi-context support, you have to do the
-following:
-
+following:</p>
 <ol>
 <li>Compile and use GLEW with the <tt>GLEW_MX</tt> preprocessor token
 defined.</li>
@@ -477,255 +191,51 @@
 that will be available as long as the rendering context exists.</li>
 <li>Define a macro or function called <tt>glewGetContext()</tt> that
 returns a pointer to the <tt>GLEWContext</tt> object associated with
-the rendering context from which OpenGL/WGL/GLX calls are
-issued. (This dispatch mechanism is primitive, but generic.)
-<li>Replace the global <tt>glewInit()</tt> call with
-<tt>glewContextInit(glewGetContext())</tt>. Note, that the
+the rendering context from which OpenGL/WGL/GLX calls are issued. This
+dispatch mechanism is primitive, but generic.
+<li>Make sure that you call <tt>glewInit()</tt> after creating the
+<tt>GLEWContext</tt> object in each rendering context.  Note, that the
 <tt>GLEWContext</tt> pointer returned by <tt>glewGetContext()</tt> has
-to reside in global or thread-local memory. Also, remember to call
-<tt>glewContextInit</tt> after creating the <tt>GLEWContext</tt> object
-in each rendering context.
+to reside in global or thread-local memory.
 </ol>
 
-<p>Note that according to <a
-href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/opengl/ntopnglr_6yer.asp">WGL
-documentation</a>, you have to initialize the entry points for every
-rendering context you create that use pixel formats with different
-capabilities (for example the pixel formats provided by the generic
+<p>Note that according to the <a
+href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/opengl/ntopnglr_6yer.asp">MSDN
+WGL documentation</a>, you have to initialize the entry points for
+every rendering context that use pixel formats with different
+capabilities For example, the pixel formats provided by the generic
 software OpenGL implementation by Microsoft vs. the hardware
-accelerated pixel formats).  <b>GLEW by default ignores this
-requirement, and does not define per-context entry points (you can
-however do this using the steps described above).</b> Assuming a
-global namespace for the entry points works in most situations,
-because typically all hardware accelerated pixel formats provide the
-same entry points and capabilities (and why would anyone want to use
-the software renderer when hardware acceleration is available?). This
-means that unless you use the multi-context version of GLEW, you need
-to call <tt>glewInit()</tt> only once in your program, or more
-precisely, once per process.</p>
-
-<p>
+accelerated pixel formats have different capabilities.  <b>GLEW by
+default ignores this requirement, and does not define per-context
+entry points (you can however do this using the steps described
+above).</b> Assuming a global namespace for the entry points works in
+most situations, because typically all hardware accelerated pixel
+formats provide the same entry points and capabilities. This means
+that unless you use the multi-context version of GLEW, you need to
+call <tt>glewInit()</tt> only once in your program, or more precisely,
+once per process.</p>
+
+<h2>Separate Namespace</h2>
+
+<p>
+To avoid name clashes when linking with libraries that include the
+same symbols, extension entry points are declared in a separate
+namespace (release 1.1.0 and up). This is achieved by aliasing OpenGL
+function names to their GLEW equivalents. For instance,
+<tt>glFancyFunction</tt> is simply an alias to
+<tt>glewFancyFunction</tt>.  The separate namespace does not effect
+token and function pointer definitions.
+</p>
+
+<h2>Known Issues</h2>
+
+<p>
+GLEW requires GLX 1.2 for compatibility with GLUT.
+</p>
 
 </td>
 </tr>
 
-<tr><td bgcolor="#fff0d0" align="center"></td></tr>
-
-<tr>
-<td bgcolor="#ffffff">
-
-<center><a name="Issues"><h2>Known Issues</h2></a></center>
-<p>
-
-GLEW requires GLX 1.2 to assure compatibility with GLUT.  Also,
-the SGI GLX video extensions are currently not supported.
-<p>
-
-</td>
-</tr>
-
-<tr><td bgcolor="#fff0d0" align="center"></td></tr>
-
-<tr>
-<td bgcolor="#ffffff">
-<center><a name="Credits"><h2>Credits, Copyright</h2></a></center>
-<p>
-
-GLEW was developed by Milan Ikits and Marcelo Magallon.  They also
-perform occasional maintainance to make sure that GLEW stays in mint
-condition.  Aaron Lefohn, Joe Kniss, and Chris Wyman were the first
-users and also assisted with the design and debugging process.  The
-acronym GLEW originates from Aaron Lefohn.  Pasi K&auml;rkk&auml;inen
-identified and fixed several problems with GLX and SDL.  Nate Robins
-created the <tt>wglinfo</tt> utility, to which modifications were
-added by Michael Wimmer.
-<p>
-
-<p>
-GLEW is originally derived from the EXTGL project by Lev Povalahev.  The
-source code is licensed under the modified BSD license, the <a
-href="sgi.txt">SGI Free Software License B</a>, and the <a
-href="glx.txt">GLX Public License</a>. The automatic code
-generation scripts and the config.guess script (from the GNU config tools) are
-released under the <a href="gpl.txt">GPL</a>.
-
-<blockquote><pre></pre></blockquote>
-
-</td>
-</tr>
-
-<tr><td bgcolor="#fff0d0" align="center"></td></tr>
-
-<tr>
-<td bgcolor="#ffffff">
-<center><a name="Log"><h2>Change Log</h2></a></center>
-<p>
-<ul class="none">
-<li><b>1.2.5</b> [12-06-04]
-<ul>
-<li> New extensions:
-<ul>
-<li>GL_ATI_texture_compression_3dc
-<li>GL_EXT_Cg_shader
-<li>GL_EXT_draw_range_elements
-<li>GL_KTX_buffer_region
-</ul>
-<li> Bug fixes:
-<ul>
-<li> OpenGL version detection bug
-<li> Problems with wxWindows and MinGW compilation
-<li> <tt>visualinfo</tt> compilation problem with GLEW_MX specified
-<li> Wrong token name in OpenGL 1.5 core
-</ul>
-<li> Support for FreeBSD
-</ul>
-</ul>
-<p>
-<ul class="none">
-<li><b>1.2.4</b> [09-06-04]
-<ul>
-<li> Added ARB_draw_buffers and ARB_texture_rectangle
-<li> Replaced <tt>wglinfo</tt> with <tt>visualinfo</tt>
-</ul>
-<p>
-<li><b>1.2.3</b> [06-10-04]
-<ul>
-<li> Added NV_fragment_program2, NV_fragment_program_option, NV_vertex_program2_option, NV_vertex_program3
-<li> Bug fix in GL_ARB_vertex_blend
-</ul>
-<p>
-<li><b>1.2.2</b> [05-08-04]
-<ul>
-<li> Added GL_EXT_pixel_buffer_object, removed GL_NV_element_array
-<li> Fixed GLEW_MX problems
-<li> Bug fix in GL_EXT_texture_rectangle and <tt>wglinfo</tt>
-</ul>
-<p>
-<li><b>1.2.1</b> [03-18-04]
-<ul>
-<li> Bug fix in OpenGL version query (early release of 1.2.0 contained this bug)
-<li> Bug fix in GL_ARB_shader_objects and temporary bug fix in GL_ARB_vertex_shader
-<li> Added flags on GDI support and multisampling to <tt>wglinfo</tt>
-</ul>
-<p>
-<li><b>1.2.0</b> [02-19-04]
-<ul>
-<li> Added full OpenGL 1.5 support
-<li> Added support for multiple rendering contexts with different capabilities
-<li> Added command line flags to <tt>glewinfo</tt> for selecting displays and visuals
-<li> Added GLX_SGIS_multisample, GLX_SUN_video_resize, and GL_SUN_read_video_pixels
-<li> Added MinGW/MSYS support
-<li> Bug fixes in GL_ARB_shader_objects and the OS X build
-</ul>
-<p>
-<li><b>1.1.4</b> [12-15-03]
-<ul>
-<li> Added GL_APPLE_float_pixels, GL_APPLE_texture_range, 
-GL_EXT_texture_cube_map, GL_EXT_texture_edge_clamp,
-GLX_ATI_pixel_format_float, and GLX_ATI_render_texture
-<li> Bug fixes in GL_ATI_map_object_buffer and GL_ATI_fragment_shader
-</ul>
-<p>
-<li><b>1.1.3</b> [10-28-03]
-<ul>
-<li> Added Solaris and Darwin support
-<li> Added GL_ARB_fragment_shader, GL_ARB_shader_objects, and
-GL_ARB_vertex_shader
-<li> Fixed bug in GL_WIN_swap_hint
-<li> Removed <tt>glewinfo</tt>'s dependency on <tt>GLUT</tt>
-</ul>
-<p>
-<li><b>1.1.2</b> [09-15-03]
-<ul>
-<li> Removed dependency on WGL_{ARB,EXT}_extensions_string
-<li> Added glewGetString for querying GLEW version string
-</ul>
-<p>
-<li><b>1.1.1</b> [08-11-03]
-<ul>
-<li> Added GLX_NV_float_buffer
-<li> Fixed bug in GL_ARB_vertex_buffer_object
-<li> Minor updates in documentation
-</ul>
-<p>
-<li><b>1.1.0</b> [07-08-03]
-<ul>
-<li> Added automatic code generation
-<li> Added almost every extension in the registry
-<li> Added separate namespace
-<li> Added IRIX support
-<li> Updated documentation
-</ul>
-<p>
-<li><b>1.0.7</b> [06-29-03]
-<ul>
-<li> Added GL_EXT_depth_bounds_test
-<li> Fixed typos
-</ul>
-<p>
-<li><b>1.0.6</b> [05-05-03]
-<ul>
-<li> Added ARB_vertex_buffer_object and NV_half_float
-<li> Updated <tt>wglinfo</tt>
-<li> Temporary Linux bug fixes (problems with SDL and MESA)
-</ul>
-<p>
-<li><b>1.0.5</b> [02-17-03]
-<ul>
-<li> Bug fixes
-<li> Added <tt>wglinfo</tt>
-<li> Updated documentation
-</ul>
-<p>
-<li><b>1.0.4</b> [02-02-03]
-<ul>
-<li> Added NV_texture_expand_normal
-<li> Added mingw support
-<li> Updated documentation
-</ul>
-<p>
-<li><b>1.0.3</b> [01-09-03]
-<ul>
-<li> Cleaned up ATI extensions
-<li> Changed function prototypes to match glext.h
-<li> Added EXT_texture3D
-<li> Fixed typos in ATI_vertex_attrib_array_object and ATI_draw_buffers
-</ul>
-<p>
-<li><b>1.0.2</b> [12-21-02]
-<ul>
-<li> Added list of supported extensions to documentation
-<li> Added NV_half_float and NV_texgen_emboss
-</ul>
-<p>
-<li><b>1.0.1</b> [12-17-02]
-<ul>
-<li> Bug fixes
-<li> Added glewGetExtension
-</ul>
-<p>
-<li><b>1.0.0</b> [12-12-02]
-<ul>
-<li> Initial release
-</ul>
-
-</ul>
-
-</td>
-</tr>
-
-<tr>
-<td bgcolor="#FFF0D0">
-<table border="0" cellspacing="0" cellpadding="0" width="100%">
-<tr>
-<td align="right">
-<i>Last update: 12-06-04</i></td>
-</tr>
-</table>
-</td>
-</tr>
-
-</table>
-</center>
+</table>
 
 </body>