<h1> OpenGL Utility Toolkit</h1>
</center>
<center>
-<h1> (freeglut)</h1>
+<h1> (<i>freeglut</i> 2.0.0)</h1>
</center>
<center>
<h1> Application Programming Interface</h1>
</center>
<center>
-<h2> The freeglut Programming Consortium</h2>
+<h2> The <i>freeglut</i> Programming Consortium</h2>
</center>
<center>
-<h2> November, 2002</h2>
+<h2> July, 2003</h2>
</center>
<p><br>
as a subloop while a specific window was open, and then return to the calling
function. A new function, "<tt>glutMainLoopEvent</tt>", has been added
to allow this functionality. Another function, "<tt>glutLeaveMainLoop</tt>
-", has also been added to allow the application to tell freeglut to clean
+", has also been added to allow the application to tell <i>freeglut</i> to clean
up and close down.
<h3> 3.4.2 Action on Window Closure</h3>
Another difficulty with GLUT, especially with multiple-window programs,
to Silicon Graphics hardware have not been implemented. Most or all
of the new callbacks are listed in the GLUT Version 4 "glut.h" header file
but did not make it into the documentation. The new callbacks consist
-of regular and special key release callbacks, a joystick callback, a menu
-state callback (with one argument, distinct from the menu status callback
-which has three arguments), and a window status callback <br>
- (also with one argument). Unsupported callbacks are the three Spaceball
-callbacks, the ButtonBox callback, the Dials callback, and the two Tablet
+of regular and special key release callbacks, a joystick callback, a window
+status callback, window closure callbacks, a menu closure callback, and a
+mouse wheel callback. Unsupported callbacks are the three Spaceball
+callbacks, the ButtonBox callback, and the two Tablet
callbacks. If the user has a need for an unsupported callback he should
contact the <i>freeglut</i> development team.<br>
<h3>3.4.5 Geometry Rendering<br>
</h3>
- Two functions have been added to render a wireframe and a solid rhombic
-dodecahedron.
+ Functions have been added to render a wireframe and a solid rhombic
+dodecahedron, a cylinder, and a Sierpinski sponge.
<h3> 3.4.5 Extension Function Queries</h3>
glutGetProcAddress is a wrapper for the glXGetProcAddressARB and wglGetProcAddress
functions.
<li>GLUT_INIT_STATE - ?
<li>GLUT_VERSION - Return value will be X*10000+Y*100+Z where X is the
major version, Y is the minor version and Z is the patch level.
- This query is only supported in freeglut (version 1.3 or later).
+ This query is only supported in <i>freeglut</i> (version 2.0.0 or later).
</ul>
that supports the extension. By using a function pointer returned from glutGetProcAddress(),
the application will avoid this hard dependency and be more portable and interoperate
better with various implementations of OpenGL. </p>
- <p> Both OpenGL functions and freeglut
+ <p> Both OpenGL functions and <i>freeglut</i>
functions can be queried with this function. </p>
<p><b>Changes From GLUT</b> </p>
</pre>
<p>
-Compile-time freeglut version testing can be done as follows:
+Compile-time <i>freeglut</i> version testing can be done as follows:
</p>
<pre>
-#ifdef FREEGLUT_VERSION_1_4
- code specific to freeglut 1.4 or later here
+#ifdef FREEGLUT_VERSION_2_0
+ code specific to freeglut 2.0 or later here
#endif
</pre>
<p>
-In future releases, FREEGLUT_VERSION_1_5, FREEGLUT_VERSION_1_6, etc will
+In future releases, FREEGLUT_VERSION_2_1, FREEGLUT_VERSION_2_2, etc will
be defined. This scheme mimics OpenGL conventions.
</p>
<p>
-The freeglut version can be queried at runtime by calling
+The <i>freeglut</i> version can be queried at runtime by calling
glutGet(GLUT_VERSION).
The result will be X*10000+Y*100+Z where X is the major version, Y is the
minor version and Z is the patch level.
</p>
<pre>
-if (glutGet(GLUT_VERSION) < 10300) {
- printf("Sorry, you need freeglut version 1.3.0 or later to run this program.\n");
+if (glutGet(GLUT_VERSION) < 20001) {
+ printf("Sorry, you need freeglut version 2.0.1 or later to run this program.\n");
exit(1);
}
</pre>