summaryrefslogtreecommitdiff
path: root/auto/doc/basic.html
diff options
context:
space:
mode:
Diffstat (limited to 'auto/doc/basic.html')
-rw-r--r--auto/doc/basic.html180
1 files changed, 180 insertions, 0 deletions
diff --git a/auto/doc/basic.html b/auto/doc/basic.html
new file mode 100644
index 0000000..693575b
--- /dev/null
+++ b/auto/doc/basic.html
@@ -0,0 +1,180 @@
+<h2>Initializing GLEW</h2>
+<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:
+</p>
+
+<p class="pre">
+#include &lt;GL/glew.h&gt;<br>
+#include &lt;GL/glut.h&gt;<br>
+...<br>
+glutInit(&amp;argc, argv);<br>
+glutCreateWindow("GLEW Test");<br>
+GLenum err = glewInit();<br>
+if (GLEW_OK != err)<br>
+{<br>
+&nbsp;&nbsp;/* Problem: glewInit failed, something is seriously wrong. */<br>
+&nbsp;&nbsp;fprintf(stderr, "Error: %s\n", glewGetErrorString(err));<br>
+&nbsp;&nbsp;...<br>
+}<br>
+fprintf(stdout, "Status: Using GLEW %s\n", glewGetString(GLEW_VERSION));<br>
+</p>
+
+<h2>Checking for Extensions</h2>
+
+<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>:
+</p>
+
+<p class="pre">
+if (GLEW_ARB_vertex_program)<br>
+{<br>
+&nbsp;&nbsp;/* It is safe to use the ARB_vertex_program extension here. */<br>
+&nbsp;&nbsp;glGenProgramsARB(...);<br>
+}<br>
+</p>
+
+<p>
+<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>
+
+<p>
+You can also check for core OpenGL functionality. For example, to
+see if OpenGL 1.3 is supported, do the following:
+</p>
+
+<p class="pre">
+if (GLEW_VERSION_1_3)<br>
+{<br>
+&nbsp;&nbsp;/* Yay! OpenGL 1.3 is supported! */<br>
+}<br>
+</p>
+
+<p>
+In general, you can check if <tt>GLEW_{extension_name}</tt> or
+<tt>GLEW_VERSION_{version}</tt> is true or false.
+</p>
+
+<p>
+It is also possible to perform extension checks from string
+input. Starting from the 1.3.0 release, use <tt>glewIsSupported</tt>
+to check if the required core or extension functionality is
+available:
+</p>
+
+<p class="pre">
+if (glewIsSupported("GL_VERSION_1_4&nbsp;&nbsp;GL_ARB_point_sprite"))<br>
+{<br>
+&nbsp;&nbsp;/* Great, we have OpenGL 1.4 + point sprites. */<br>
+}<br>
+</p>
+
+<p>
+For extensions only, <tt>glewGetExtension</tt> provides a slower alternative
+(GLEW 1.0.x-1.2.x). <b>Note that in the 1.3.0 release </b>
+<tt>glewGetExtension</tt> <b>was replaced with </b>
+<tt>glewIsSupported</tt>.
+</p>
+
+<p class="pre">
+if (glewGetExtension("GL_ARB_fragment_program"))<br>
+{<br>
+&nbsp;&nbsp;/* Looks like ARB_fragment_program is supported. */<br>
+}<br>
+</p>
+
+<h2>Experimental Drivers</h2>
+
+<p>
+GLEW obtains information on the supported extensions from the graphics
+driver. Experimental or pre-release 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>, which ensures that all extensions with valid
+entry points will be exposed.
+</p>
+
+<h2>Platform Specific Extensions</h2>
+
+<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:
+</p>
+
+<p class="pre">
+#include &lt;GL/wglew.h&gt;<br>
+<br>
+if (WGLEW_ARB_pbuffer)<br>
+{<br>
+&nbsp;&nbsp;/* OK, we can use pbuffers. */<br>
+}<br>
+else<br>
+{<br>
+&nbsp;&nbsp;/* Sorry, pbuffers will not work on this platform. */<br>
+}<br>
+</p>
+
+<p>
+Alternatively, use <tt>wglewIsSupported</tt> or
+<tt>glxewIsSupported</tt> to check for extensions from a string:
+</p>
+
+<p class="pre">
+if (wglewIsSupported("WGL_ARB_pbuffer"))<br>
+{<br>
+&nbsp;&nbsp;/* OK, we can use pbuffers. */<br>
+}<br>
+</p>
+
+<h2>Utilities</h2>
+
+<p>
+GLEW provides two command-line utilities: 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>. The
+Windows version creates a file called <tt>visualinfo.txt</tt>, which
+contains a list of available OpenGL, WGL, and GLU extensions as well
+as a table of visuals aka. pixel formats. Pbuffer and MRT 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. The Windows version
+reports the results to a text file called <tt>glewinfo.txt</tt>. The
+Unix version prints the results to <tt>stdout</tt>.
+</p>
+
+<p>Windows usage:</p>
+ <blockquote><pre>glewinfo [-pf &lt;id&gt;]</pre></blockquote>
+
+<p>where <tt>&lt;id&gt;</tt> is the pixel format id for which the
+capabilities are displayed.</p>
+
+<p>Unix usage:</p>
+<blockquote><pre>glewinfo [-display &lt;dpy&gt;] [-visual &lt;id&gt;]</pre></blockquote>
+
+<p>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>
+