diff options
author | sotech117 <michael_foiani@brown.edu> | 2024-04-09 03:14:17 -0400 |
---|---|---|
committer | sotech117 <michael_foiani@brown.edu> | 2024-04-09 03:14:17 -0400 |
commit | 7a8d0d8bc2572707c9d35006f30ea835c86954b0 (patch) | |
tree | dedb9a65c1698202ad485378b4186b667008abe5 /glew/auto/doc/advanced.html | |
parent | 818324678bd5dca790c57048e5012d2937a4b5e5 (diff) |
first draft to generate waves
Diffstat (limited to 'glew/auto/doc/advanced.html')
-rw-r--r-- | glew/auto/doc/advanced.html | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/glew/auto/doc/advanced.html b/glew/auto/doc/advanced.html new file mode 100644 index 0000000..3e0ad79 --- /dev/null +++ b/glew/auto/doc/advanced.html @@ -0,0 +1,130 @@ +<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>, but make sure that the +root directory is mounted in binary mode. The makefile in the +<tt>auto</tt> directory provides the following build targets: +</p> + +<table border=0 cellpadding=0 cellspacing=5> +<tr><td align="left" valign="top"><tt>make</tt></td> +<td align=left>Create the source files from the descriptors.<br/> If the +descriptors do not exist, create them from the spec files.<br/> If the spec +files do not exist, download them from the OpenGL repository.</td></tr> +<tr><td align="left" valign="top"><tt>make clean</tt></td> +<td align=left>Delete the source files.</td></tr> +<tr><td align="left" valign="top"><tt>make clobber</tt></td> +<td align=left>Delete the source files and the descriptors.</td></tr> +<tr><td align="left" valign="top"><tt>make destroy</tt></td> +<td align=left>Delete the source files, the descriptors, and the spec files.</td></tr> +<tr><td align="left" valign="top"><tt>make custom</tt></td> +<td align=left>Create the source files for the extensions +listed in <tt>auto/custom.txt</tt>.<br/> See "Custom Code +Generation" below for more details.</td></tr> +</table> + +<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"> +<Extension Name><br> +[<URL of Specification File>]<br> + [<Token Name> <Token Value>]<br> + [<Token Name> <Token Value>]<br> + ...<br> + [<Typedef>]<br> + [<Typedef>]<br> + ...<br> + [<Function Signature>]<br> + [<Function Signature>]<br> + ...<br> +<!-- [<Function Definition>]<br> + [<Function Definition>]<br> + ...<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 library 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>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> + |