diff options
Diffstat (limited to 'gtk+-mingw/share/doc/freeglut-2.8.0')
-rw-r--r-- | gtk+-mingw/share/doc/freeglut-2.8.0/download.html | 42 | ||||
-rw-r--r-- | gtk+-mingw/share/doc/freeglut-2.8.0/freeglut.html | 163 | ||||
-rw-r--r-- | gtk+-mingw/share/doc/freeglut-2.8.0/freeglut_logo.png | bin | 15887 -> 0 bytes | |||
-rw-r--r-- | gtk+-mingw/share/doc/freeglut-2.8.0/freeglut_user_interface.html | 1956 | ||||
-rw-r--r-- | gtk+-mingw/share/doc/freeglut-2.8.0/index.html | 101 | ||||
-rw-r--r-- | gtk+-mingw/share/doc/freeglut-2.8.0/ogl_sm.png | bin | 1586 -> 0 bytes | |||
-rw-r--r-- | gtk+-mingw/share/doc/freeglut-2.8.0/progress.html | 137 | ||||
-rw-r--r-- | gtk+-mingw/share/doc/freeglut-2.8.0/structure.html | 80 |
8 files changed, 0 insertions, 2479 deletions
diff --git a/gtk+-mingw/share/doc/freeglut-2.8.0/download.html b/gtk+-mingw/share/doc/freeglut-2.8.0/download.html deleted file mode 100644 index b9baab2..0000000 --- a/gtk+-mingw/share/doc/freeglut-2.8.0/download.html +++ /dev/null @@ -1,42 +0,0 @@ -<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> -<html> -<head> - <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> - <meta name="author" content="Pawel W. Olszta"> - <meta name="copyright" content="Pawel W. Olszta"> - <meta name="description" content="The downloads page"> - <meta name="keywords" content="freeglut glut OpenGL"> - <meta name="GENERATOR" content="WebMaker"> - <title>The freeglut project</title> -</head> -<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000"> - -<center><img SRC="freeglut_logo.png" ALT="The freeglut logo" height=106 width=314></center> - -<center><dt><i><font face="Courier New,Courier"><font size=+1> -I upload it, you download it. That's the ying-yang nature of the Buddha. -</font></font></i></dt></center> - -<center><table WIDTH="620"><tr><td><hr WIDTH="100%"> - -<p><i>January the 16th, 2000</i> -<p>Here is a list of files you can download: -<p> - -<ul> -<li> - <a href="freeglut-1.3-alpha-2000-01-04.tar.gz"> - freeglut-1.3-alpha-2000-01-04.tar.gz</a> (approx. 210kB) -<li> - <a href="freeglut-1.3-alpha-2000-01-06.tar.gz"> - freeglut-1.3-alpha-2000-01-06.tar.gz</a> (approx. 220kB) -<li> - <a href="freeglut-1.3-alpha-2000-01-09.tar.gz"> - freeglut-1.3-alpha-2000-01-09.tar.gz</a> (approx. 230kB) -<li> - <a href="freeglut-1.3-alpha-2000-01-16.tar.gz"> - freeglut-1.3-alpha-2000-01-16.tar.gz</a> (approx. 230kB) -</ul> - -</table></center></body></html> - diff --git a/gtk+-mingw/share/doc/freeglut-2.8.0/freeglut.html b/gtk+-mingw/share/doc/freeglut-2.8.0/freeglut.html deleted file mode 100644 index 7357dea..0000000 --- a/gtk+-mingw/share/doc/freeglut-2.8.0/freeglut.html +++ /dev/null @@ -1,163 +0,0 @@ -<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> -<html> -<head> - <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> - <meta name="author" content="Pawel W. Olszta"> - <meta name="copyright" content="Pawel W. Olszta"> - <meta name="description" content="A bit about me and the freeglut project"> - <meta name="keywords" content="freeglut glut OpenGL"> - <meta name="GENERATOR" content="WebMaker"> - <title>The freeglut project</title> -</head> -<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000"> - -<center><img SRC="freeglut_logo.png" ALT="The freeglut logo" height=106 width=314></center> - -<center><dt><i><font face="Courier New,Courier"><font size=+1> -I am best at what I do worst and for this gift I feel blessed... -</font></font></i></dt></center> - -<center><table WIDTH="620"><tr><td><hr WIDTH="100%"> - -<p><i>January the 2nd, 2000</i> - -<p>The alpha version has been released yesterday. Today I have been busy with moving -the project site to the <a href="http://www.sourceforge.net">SourceForge</a>. As for -now there will be the web site available and I will give it a try to set up the -freeglut mailing lists. There will be no CVS access available for now (my dialup -internet connection sucks so badly that I wouldn't be able to work on the project). -After I am done with that, I will try announcing the project on www.opengl.org. - -<p>Of other things, there has been rumours floating round the routers and hubs about -Mark Kilgard changing the GLUT's license, but this is unconfirmed. It would be really -cool if he did so, there's no better motivation to work than a bit of sound competition. -As for me, I already put too much work into the freeglut project to terminate it just -now. We'll see what happens next. - -<p><i>January the 4th, 2000</i> - -<p>Ho-ho-ho. Freeglut-1.3 works fine with `Tux the Penguin and the Quest for Herring'. -At least that's what Steve Baker, the author, says. Not only that, Steve has provided -us with the joystick code (from his great PLIB project) and numerous hints and tips -about making freeglut more useful (I will try to put the results of our discussion -on the <a href="structure.html">structure page</a>). - -<p>As for other issues -- I promise I will start the Win32 port this weekend. -BTW. -- is there a decent cross compiler for Linux that generates Win32 executables, -so that I don't have to use windows for development? And what about Wine OpenGL -support? - -<p>The package is now some 40kB smaller than the previous one. Did some general -clean ups, removed unnecessary configure scripts in the genfonts directory, -the configure cahce, the Makefiles and so on. Also, I have started introducing -the new internal structure, as described <a href="structure.html">here</a>. - -<p><i>January the 6th, 2000</i> - -<p>The missing glutInit() issue seems to be solved. Chris Purnell (fxGLUT author) says -that the GLUT window and menu creation functions call glutInit() if the caller didn't -do that before. - -<p>The enumerations for GLUT_KEY_UP and GLUT_KEY_RIGHT were accidentally swapped. -They should be OK now. Hope the rest is OK :) - -<p>Added two new API calls to freeglut-1.3 -- glutBitmapHeight() and glutStrokeHeight(), -as suggested by Steve Baker. This won't break the GLUT compatibility a lot, and I've -heard it can be useful. Here you go. - -<p>The <a href="structure.html">structure</a> plans page has been updated. The numerous -feature hints from opengl-gamedev-l readers have been added. - -<p>Somebody (Chris?) hinted me that the stroke fonts can be found in the XFree86 -sources. I browsed through it and -- presto. Now I only need to define the stroke fonts -structure (should be very similiar to bitmapped one) and write quite a simple parser. - -<p>I've spent the (late) evening doing the init display string parsing and making -my logics classes homework :) Both is harder than I primarily thought, but fortunately -for me I can commit errors in one of those tasks. Guess which one? Argh. :) - -<p><i>January the 8th, 2000</i> - -<p>First of all, both the missing glutInit() and glutGet(GLUT_WINDOW_[X|Y]) issues are -fixed now. The first problem was solved thanks to Chris Purnell, who showed me the way -GLUT dealt with the problem. Good for me there's someone who reads it's source code (I -just felt it would be unfair for me to do so :D). The second problem was solved by -adding a XMoveWindow call just after the window creation and initial mapping. This is -strange. Maybe one of the Xlib calls between the creation and mapping spoiled the -window's coordinates? - -<p>This makes even more GLUT tests work fine. The tests can be found in any decent -GLUT 3.7 distribution. Following tests produce a FAIL message: test18.c (some layer -issues), test19.c (see the GLUT_NORMAL_DAMAGED issue on the progress page), test22.c -(window stacking/visibilty problems), test23.c (glutInitDisplayString() is unfinished), -test25.c (the freeglut fonts differ a bit from GLUT's), test28.c (-iconic handling -is missing(?)). Gee :) - -<p>I've spent another hour doing the glutInitDisplayString(), but it still is far from -being complete. And I've also started gathering information on doing the game mode -stuff. The video mode enumeration in both cases will be painful. - -<p>There is a big issue with the window contents redrawing. Right now, it is forced -every time there are no events pending in the main loop. I know it's wrong, but it -without such an approach some of the test programs freeze soon after starting. Could -someone peer-review the main loop code please? - -<p>I have decided to start the Win32 port this weekend. As for now, the code compiles -under vc++5.0. I will start making it work as soon as I download the pthreads library -and the newest version of GLib for Windows. It was quite a good idea to start the port, -as the Microsoft's compiler generates much more warnings and I had quite a few things -fixed for free. - -<p><i>January the 9th, 2000</i> - -<p>Doing the Win32 port all the day... Actually, there is enough code to make it work, -however I am sure only of that it compiles (more or less). I need to download the -pthreads-win32 library to get the GLib working first, and somehow I was unable to -do it during the weekend. Once again -- the Win32 port does not work yet. Oh, and -I need adding the __declspec(dllexport) thing... - -<p>After it starts working, I'll have to clean up the code a bit, I guess... - -<p><i>January the 10th, 2000</i> - -<p>Here I am at three o'clock am, half-awake, uploading and downloading things for -freeglut. I never thought I'd be able to force myself getting up that early :) - -<p><i>January the 16th, 2000</i> - -<p>Both the flu and a terrible feeling about the dialup bills made me slow down -a bit, the internet activity I mean :). But here I am again uploading the latest -snapshot. The biggest news about it is the Win32 port working, with nearly all -features you can find in the X11 version implemented (still, it needs some debugging). -For the Unix port, game mode support (loosely based on SDL source code posted at Neal -Tringham's www.pseudonymz.demon.co.uk) and numerous bug fixes have been introduced. - -<p>In order to compile the Win32 version, you'll need pthreads-win32 library (see -sourceware.cygnus.org), the GLib-1.2.x (www.gtk.org, I've been using the 1.2.6), -a working native compiler (Microsoft VisualC++ 5.0 in my case), and a bit of patience. -See the project files I've supplied for some definitions needed (FREEGLUT_LIBRARY_BUILD -needs to be declared when building the DLL), and don't forget freeglut joystick code -is making use of Win32 multimedia extensions (link against winmm.lib). - -<p>Be prepared to meet the fact Mesa 3.1 (or at least my compilation) doesn't work very -well with this snapshot -- something's messed up when changing WGL contexts. This is -really strange, as the Microsoft's OpenGL works pretty fine, as does Dominik Behr's -miniGL thing. The assumption is that I've taken some approach that somehow is valid -with Microsoft's drivers, but is not OpenGL conformant. Could anyone check this out -please? - -<p>My plan for next week is to add some lesser features missing, and start learning -maths as the session at my university is coming in really fast :) This way or another, -expect the next release not any sooner than next weekend (given that no nasty bugs get -digged out). - -<p>Argh. Don't be surprised if the code doesn't compile under X-11 other than XFree86. -It could fail when trying to include the X11/extensions/xf86vmode.h include header, -in that case just comment out that inclusion line (found in freeglut_internal.h). -Is there any intelligent way to detect the existence of an include header, and if -it's autoconf to be the answer, how to use it? - -<br><br><a href="index.html"><i>Back to the main page</i></a> - -</table></center></body></html> - diff --git a/gtk+-mingw/share/doc/freeglut-2.8.0/freeglut_logo.png b/gtk+-mingw/share/doc/freeglut-2.8.0/freeglut_logo.png Binary files differdeleted file mode 100644 index 36bf1b5..0000000 --- a/gtk+-mingw/share/doc/freeglut-2.8.0/freeglut_logo.png +++ /dev/null diff --git a/gtk+-mingw/share/doc/freeglut-2.8.0/freeglut_user_interface.html b/gtk+-mingw/share/doc/freeglut-2.8.0/freeglut_user_interface.html deleted file mode 100644 index 20d1e42..0000000 --- a/gtk+-mingw/share/doc/freeglut-2.8.0/freeglut_user_interface.html +++ /dev/null @@ -1,1956 +0,0 @@ -<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en"> -<html> -<head> - - <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> - - <meta name="Author" content="John F. Fay"> - - <meta name="GENERATOR" content="Mozilla/4.77 [en] (Windows NT 5.0; U) [Netscape]"> - <title>FREEGLUT Application Program Interface</title> -</head> - <body> - -<dl> -<center> -<h1> The Open-Source</h1> - </center> -<center> -<h1> OpenGL Utility Toolkit</h1> - </center> -<center> -<h1> (<i>freeglut</i> 2.0.0)</h1> - </center> -<center> -<h1> Application Programming Interface</h1> - </center> -</dl> - -<center> -<h1> Version 4.0</h1> - </center> - -<center> -<h2> The <i>freeglut</i> Programming Consortium</h2> - </center> - -<center> -<h2> July, 2003</h2> - </center> - -<p><br> - OpenGL is a trademark of Silicon Graphics, Inc. X Window System is a trademark -of X Consortium, Inc. Spaceball is a registered trademark of Spatial -Systems Inc. <br> - The authors have taken care in preparation of this documentation but make -no expressed or implied warranty of any kind and assumes no responsibility - for errors or omissions. No liability is assumed for incidental or consequential - damages in connection with or arising from the use of information or programs - contained herein. <br> - </p> - -<h1> 1.0 <a name="Contents"></a> - Contents</h1> - 1.0 <a href="#Contents">Contents</a> - -<p>2.0 <a href="#Introduction">Introduction</a> - </p> - -<p>3.0 <a href="#Background">Background</a> - </p> - -<blockquote>3.1 Design Philosophy <br> - 3.2 Conventions <br> - 3.3 Terminology <br> - 3.4 Differences from GLUT 3.7</blockquote> - - <p><br> - 4.0 <a href="#Initialization">Initialization Functions</a> - </p> - - <blockquote>4.1 glutInit <br> - 4.2 glutInitWindowPosition, glutInitWindowSize <br> - 4.3 glutInitDisplayMode <br> - 4.4 glutInitDisplayString</blockquote> - - <p><br> - 5.0 <a href="#EventProcessing">Event Processing Functions</a> - </p> - - <blockquote>5.1 glutMainLoop <br> - 5.2 glutMainLoopEvent <br> - 5.3 glutLeaveMainLoop</blockquote> - - <p><br> - 6.0 <a href="#Window">Window Functions</a> - </p> - - <blockquote>6.1 glutCreateWindow <br> - 6.2 glutCreateSubwindow <br> - 6.3 glutDestroyWindow <br> - 6.4 glutSetWindow, glutGetWindow <br> - 6.5 glutSetWindowTitle, glutSetIconTitle <br> - 6.6 glutReshapeWindow <br> - 6.7 glutPositionWindow <br> - 6.8 glutShowWindow, glutHideWindow, glutIconifyWindow <br> - 6.9 glutPushWindow, glutPopWindow <br> - 6.10 glutFullScreen</blockquote> - - <p><br> - 7.0 <a href="#Display">Display Functions</a> - </p> - - <blockquote>7.1 glutPostRedisplay <br> - 7.2 glutPostWindowRedisplay <br> - 7.3 glutSwapBuffers</blockquote> - - <p><br> - 8.0 <a href="#MouseCursor">Mouse Cursor Functions</a> - </p> - - <blockquote>8.1 glutSetCursor <br> - 8.2 glutWarpPointer</blockquote> - - <p><br> - 9.0 <a href="#Overlay">Overlay Functions</a> - </p> - - <blockquote>9.1 glutEstablishOverlay <br> - 9.2 glutRemoveOverlay <br> - 9.3 glutUseLayer <br> - 9.4 glutPostOverlayRedisplay <br> - 9.5 glutPostWindowOverlayRedisplay <br> - 9.6 glutShowOverlay, glutHideOverlay</blockquote> - - <p><br> - 10.0 <a href="#Menu">Menu Functions</a> - </p> - - <blockquote>10.1 glutCreateMenu <br> - 10.2 glutDestroyMenu <br> - 10.3 glutGetMenu, glutSetMenu <br> - 10.4 glutAddMenuEntry <br> - 10.5 glutAddSubMenu <br> - 10.6 glutChangeToMenuEntry <br> - 10.7 glutChangeToSubMenu <br> - 10.8 glutRemoveMenuItem <br> - 10.9 glutAttachMenu, glutDetachMenu</blockquote> - - <p><br> - 11.0 <a href="#GlobalCallback">Global Callback Registration Functions</a> - </p> - - <blockquote>11.1 glutTimerFunc <br> - 11.2 glutIdleFunc</blockquote> - - <p><br> - 12.0 <a href="#WindowCallback">Window-Specific Callback Registration - Functions</a> - </p> - - <blockquote>12.1 glutDisplayFunc <br> - 12.2 glutOverlayDisplayFunc <br> - 12.3 glutReshapeFunc <br> - 12.4 glutCloseFunc <br> - 12.5 glutKeyboardFunc <br> - 12.6 glutSpecialFunc <br> - 12.7 glutKeyboardUpFunc <br> - 12.8 glutSpecialUpFunc <br> - 12.9 glutMouseFunc <br> - 12.10 glutMotionFunc, glutPassiveMotionFunc <br> - 12.11 glutVisibilityFunc <br> - 12.12 glutEntryFunc <br> - 12.13 glutJoystickFunc <br> - 12.14 glutSpaceballMotionFunc <br> - 12.15 glutSpaceballRotateFunc <br> - 12.16 glutSpaceballButtonFunc <br> - 12.17 glutButtonBoxFunc <br> - 12.18 glutDialsFunc <br> - 12.19 glutTabletMotionFunc <br> - 12.20 glutTabletButtonFunc - <p>12.21 glutMenuStatusFunc <br> - 12.22 glutWindowStatusFunc</p> - </blockquote> - - <p><br> - 13.0 <a href="#StateSetting">State Setting and Retrieval Functions</a> - </p> - - <blockquote>13.1 glutSetOption <br> - 13.2 glutGet <br> - 13.3 glutDeviceGet <br> - 13.4 glutGetModifiers <br> - 13.5 glutLayerGet <br> - 13.6 glutExtensionSupported<br> -13.7 glutGetProcAddress<br> - </blockquote> - - <p><br> - 14.0 <a href="#FontRendering">Font Rendering Functions</a> - </p> - - <blockquote>14.1 glutBitmapCharacter <br> - 14.2 glutBitmapString <br> - 14.3 glutBitmapWidth <br> - 14.4 glutBitmapLength <br> - 14.5 glutBitmapHeight <br> - 14.6 glutStrokeCharacter <br> - 14.7 glutStrokeString <br> - 14.8 glutStrokeWidth <br> - 14.9 glutStrokeLength <br> - 14.10 glutStrokeHeight</blockquote> - - <p><br> - 15.0 <a href="#GeometricObject">Geometric Object Rendering Functions</a> - </p> - - <blockquote>15.1 glutWireSphere, glutSolidSphere - <br> - 15.2 glutWireTorus, glutSolidTorus <br> - 15.3 glutWireCone, glutSolidCone <br> - 15.4 glutWireCube, glutSolidCube <br> - 15.5 glutWireTetrahedron, glutSolidTetrahedron <br> - 15.6 glutWireOctahedron, glutSolidOctahedron <br> - 15.7 glutWireDodecahedron, glutSolidDodecahedron <br> - 15.8 glutWireIcosahedron, glutSolidIcosahedron <br> - 15.9 glutWireRhombicDodecahedron, glutSolidRhombicDodecahedron <br> - 15.10 glutWireTeapot, glutSolidTeapot</blockquote> - - <p><br> - 16.0 <a href="#GameMode">Game Mode Functions</a> - </p> - - <blockquote>16.1 glutGameModeString <br> - 16.2 glutEnterGameMode, glutLeaveGameMode <br> - 16.3 glutGameModeGet</blockquote> - - <p><br> - 17.0 <a href="#VideoResize">Video Resize Functions</a> - </p> - - <blockquote>17.1 glutVideoResizeGet <br> - 17.2 glutSetupVideoResizing, glutStopVideoResizing <br> - 17.3 glutVideoResize <br> - 17.4 glutVideoPan</blockquote> - - <p><br> - 18.0 <a href="#ColorMap">Color Map Functions</a> - </p> - - <blockquote>18.1 glutSetColor, glutGetColor - <br> - 18.2 glutCopyColormap</blockquote> - - <p><br> - 19.0 <a href="#Miscellaneous">Miscellaneous Functions</a> - </p> - - <blockquote>19.1 glutIgnoreKeyRepeat, -glutSetKeyRepeat <br> - 19.2 glutForceJoystickFunc <br> - 19.3 glutReportErrors</blockquote> - - <p><br> - 20.0 <a href="#UsageNotes">Usage Notes</a> - </p> - - <p>21.0 <a href="#ImplementationNotes"> - Implementation Notes</a> - </p> - - <p>22.0 <a href="#GLUT_State">GLUT -State</a> - </p> - - <p>23.0 <a href="#Freeglut.h_Header"> - "freeglut.h" Header File</a> - </p> - - <p>24.0 <a href="#References">References</a> - </p> - - <p>25.0 <a href="#Index">Index</a> - <br> - <br> - </p> - - <h1> 2.0 <a name="Introduction"></a> - Introduction</h1> - - <h1> 3.0 <a name="Background"></a> - Background</h1> - The OpenGL programming world owes a tremendous debt to Mr. Mark J. Kilgard - for writing the OpenGL Utility Toolkit, or GLUT. The GLUT library -of functions allows an application programmer to create, control, and manipulate - windows independent of what operating system the program is running on. - By hiding the dependency on the operating system from the application programmer, - he allowed people to write truly portable OpenGL applications. - - <p> Mr. Kilgard copyrighted -his library and gave it a rather unusual license. Under his license, -people are allowed freely to copy and distribute the libraries and the source -code, but they are not allowed to modify it. For a long time this did -not matter because the GLUT library worked so well and because Mr. Kilgard -was releasing updates on a regular basis. But with the passage of time, -people started wanting some slightly different behaviours in their windowing -system. When Mr. Kilgard stopped supporting the GLUT library in 1999, -having moved on to bigger and better things, this started to become a problem. - </p> - - <p> In December 1999, -Mr. Pawel Olzsta started work on an open-source clone of the GLUT library. -This open-source clone, which does not use any of the GLUT source code, has -evolved into the present <i>freeglut</i> library. This documentation -specifies the application program interface to the <i>freeglut</i> library. - </p> - - <h2> 3.1 Design Philosophy</h2> - - <h2> 3.2 Conventions</h2> - - <h2> 3.3 Terminology</h2> - - <h2> 3.4 Differences from GLUT 3.7</h2> - Since the <i>freeglut</i> library was developed in order to update GLUT, - it is natural that there will be some differences between the two. -Each function in the API notes any differences between the GLUT and the <i> -freeglut</i> function behaviours. The important ones are summarized -here. - <h3> 3.4.1 glutMainLoop Behaviour</h3> - One of the commonest complaints about the GLUT library was that once an -application called "<tt>glutMainLoop</tt>", it never got control back. -There was no way for an application to loop in GLUT for a while, possibly -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 <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, -is that if the user clicks on the "x" in the window header the application -exits immediately. The application programmer can now set an option, -"<tt> GLUT_ACTION_ON_WINDOW_CLOSE</tt>", to specify whether execution should -continue, whether GLUT should return control to the main program, or whether -GLUT should simply exit (the default). - - <h3>3.4.3 Changes to Callbacks<br> - </h3> - Several new callbacks have been added and several callbacks which were specific -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 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.4 String Rendering<br> - </h3> - New functions have been added to render full character strings (including -carriage returns) rather than rendering one character at a time. More -functions return the widths of character strings and the font heights, in -pixels for bitmapped fonts and in OpenGL units for the stroke fonts.<br> - - <h3>3.4.5 Geometry Rendering<br> - </h3> - 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. - <h1> 4.0 <a name="Initialization"></a> - Initialization Functions</h1> - - <h2> 4.1 glutInit</h2> - - <h2> 4.2 glutInitWindowPosition, glutInitWindowSize</h2> - The "<tt>glutInitWindowPosition</tt> " and "<tt>glutInitWindowSize</tt> -" functions specify a desired position and size for windows that <i>freeglut</i> - will create in the future. - <p><b>Usage</b> </p> - - <p><tt>void glutInitWindowPosition ( int -x, int y ) ;</tt> <br> - <tt>void glutInitWindowSize ( int width, -int height ) ;</tt> </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutInitWindowPosition</tt> - " and "<tt>glutInitWindowSize</tt>" functions specify a desired position -and size for windows that <i>freeglut</i> will create in the future. -The position is measured in pixels from the upper left hand corner of the -screen, with "x" increasing to the right and "y" increasing towards the bottom -of the screen. The size is measured in pixels. <i>Freeglut</i> - does not promise to follow these specifications in creating its windows, -it certainly makes an attempt to. </p> - - <p>The position and size of a window are -a matter of some subtlety. Most windows have a usable area surrounded -by a border and with a title bar on the top. The border and title bar -are commonly called "decorations." The position of the window unfortunately -varies with the operating system. On Linux, it is the coordinates of -the upper left-hand corner of its decorations. On Windows, it is the -coordinates of the upper left hand corner of its usable interior. For -both operating systems, the size of the window is the size of the usable interior. - </p> - - <p>Windows has some additional quirks which -the application programmer should know about. First, the minimum y-coordinate -of a window decoration is zero. (This is a feature of <i>freeglut</i> - and can be adjusted if so desired.) Second, there appears to be a -minimum window width on Windows which is 104 pixels. The user may specify -a smaller width, but the Windows system calls ignore it. It is also -impossible to make a window narrower than this by dragging on its corner. - </p> - - <p><b>Changes From GLUT</b> </p> - - <p>For some reason, GLUT is not affected -by the 104-pixel minimum window width. If the user clicks on the corner -of a window which is narrower than this amount, the window will immediately -snap out to this width, but the application can call "<tt>glutReshapeWindow</tt> - " and make a window narrower again. </p> - - <h2> 4.3 glutInitDisplayMode</h2> - - <h2> 4.4 glutInitDisplayString</h2> - - <h1> 5.0 <a name="EventProcessing"></a> - Event Processing Functions</h1> - After an application has finished initializing its windows and menus, it - enters an event loop. Within this loop, <i>freeglut</i> polls the -data entry devices (keyboard, mouse, etc.) and calls the application's appropriate -callbacks. - <p>In GLUT, control never returned from -the event loop (as invoked by the "<tt>glutMainLoop</tt>" function) to the -calling function. This prevented an application from having re-entrant -code, in which GLUT could be invoked from within a callback, and it prevented -the application from doing any post-processing (such as freeing allocated -memory) after GLUT had closed down. <i>Freeglut</i> allows the application -programmer to specify more direct control over the event loop by means of -two new functions. The first, "<tt>glutMainLoopEvent</tt>", processes -a single iteration of the event loop and allows the application to use a different -event loop controller or to contain re-entrant code. The second, "<tt> -glutLeaveMainLoop</tt>", causes the event loop to exit nicely; this is preferable -to the application's calling "<tt>exit</tt>" from within a GLUT callback. - </p> - - <h2> 5.1 glutMainLoop</h2> - The "<tt>glutMainLoop</tt>" function enters the event loop. - - <p><b>Usage</b> </p> - - <p><tt>void glutMainLoop ( void ) ;</tt> - </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutMainLoop</tt>" function -causes the program to enter the window event loop. An application should -call this function at most once. It will call any application callback -functions as required to process mouse clicks, mouse motion, key presses, -and so on. </p> - - <p><b>Changes From GLUT</b> </p> - - <p>In GLUT, there was absolutely no way -for the application programmer to have control return from the "<tt>glutMainLoop</tt> - " function to the calling function. <i>Freeglut</i> allows the programmer -to force this by setting the "<tt>GLUT_ACTION_ON_WINDOW_CLOSE</tt>" option -and invoking the "<tt>glutLeaveMainLoop</tt>" function from one of the callbacks. - Stopping the program this way is preferable to simply calling "<tt>exit</tt> - " from within a callback because this allows <i>freeglut</i> to free allocated - memory and otherwise clean up after itself. (I know I just said this, - but I think it is important enough that it bears repeating.) </p> - - <h2> 5.2 glutMainLoopEvent</h2> - The "<tt>glutMainLoopEvent</tt>" function processes a single iteration -in the <i>freeglut</i> event loop. - <p><b>Usage</b> </p> - - <p><tt>void glutMainLoopEvent ( void ) ;</tt> - </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutMainLoopEvent</tt> - " function causes <i>freeglut</i> to process one iteration's worth of events -in its event loop. This allows the application to control its own event -loop and still use the <i>freeglut</i> windowing system. </p> - - <p><b>Changes From GLUT</b> </p> - - <p>GLUT does not include this function. - </p> - - <h2> 5.3 glutLeaveMainLoop</h2> - The "<tt>glutLeaveMainLoop</tt>" function causes <i>freeglut</i> to stop - its event loop. - <p><b>Usage</b> </p> - - <p><tt>void glutLeaveMainLoop ( void ) ;</tt> - </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutLeaveMainLoop</tt> - " function causes <i>freeglut</i> to stop the event loop. If the -"<tt> GLUT_ACTION_ON_WINDOW_CLOSE</tt>" option has been set to "<tt>GLUT_ACTION_CONTINUE_EXECUTION</tt> - ", control will return to the function which called "<tt>glutMainLoop</tt> - "; otherwise the application will exit. </p> - - <p>If the application has two nested calls -to "<tt>glutMainLoop</tt>" and calls "<tt>glutLeaveMainLoop</tt>", the behaviour -of <i>freeglut</i> is undefined. It may leave only the inner nested -loop or it may leave both loops. If the reader has a strong preference -for one behaviour over the other he should contact the <i>freeglut</i> Programming -Consortium and ask for the code to be fixed. </p> - - <p><b>Changes From GLUT</b> </p> - - <p>GLUT does not include this function. - </p> - - <h1> 6.0 <a name="Window"></a> - Window Functions</h1> - - <h2> 6.1 glutCreateWindow</h2> - - <h2> 6.2 glutCreateSubwindow</h2> - - <h2> 6.3 glutDestroyWindow</h2> - - <h2> 6.4 glutSetWindow, glutGetWindow</h2> - - <h2> 6.5 glutSetWindowTitle, glutSetIconTitle</h2> - - <h2> 6.6 glutReshapeWindow</h2> - - <h2> 6.7 glutPositionWindow</h2> - - <h2> 6.8 glutShowWindow, glutHideWindow, -glutIconifyWindow</h2> - - <h2> 6.9 glutPushWindow, glutPopWindow</h2> - - <h2> 6.10 glutFullScreen</h2> - - <h1> 7.0 <a name="Display"></a> - Display Functions</h1> - - <h2> 7.1 glutPostRedisplay</h2> - - <h2> 7.2 glutPostWindowRedisplay</h2> - - <h2> 7.3 glutSwapBuffers</h2> - - <h1> 8.0 <a name="MouseCursor"></a> - Mouse Cursor Functions</h1> - - <h2> 8.1 glutSetCursor</h2> - - <h2> 8.2 glutWarpPointer</h2> - - <h1> 9.0 <a name="Overlay"></a> - Overlay Functions</h1> - <i>Freeglut</i> does not allow overlays, although it does "answer the mail" - with function stubs so that GLUT-based programs can compile and link against - <i>freeglut</i> without modification. -If the reader needs overlays, he should contact the <i>freeglut</i> Programming -Consortium and ask for them to be implemented. He should also be prepared -to assist in the implementation. - <h2> 9.1 glutEstablishOverlay</h2> - The "<tt>glutEstablishOverlay</tt>" function is not implemented in <i>freeglut</i> - . - <p><b>Usage</b> </p> - - <p><tt>void glutEstablishOverlay ( void -) ;</tt> </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutEstablishOverlay</tt>" function -is not implemented in <i>freeglut</i>. </p> - - <p><b>Changes From GLUT</b> </p> - - <p>GLUT implements this function. </p> - - <h2> 9.2 glutRemoveOverlay</h2> - The "<tt>glutRemoveOverlay</tt>" function is not implemented in <i>freeglut</i> - . - <p><b>Usage</b> </p> - - <p><tt>void glutRemoveOverlay ( void ) ;</tt> - </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutRemoveOverlay</tt>" function -is not implemented in <i>freeglut</i>. </p> - - <p><b>Changes From GLUT</b> </p> - - <p>GLUT implements this function. </p> - - <h2> 9.3 glutUseLayer</h2> - The "<tt>glutUseLayer</tt>" function is not implemented in <i>freeglut</i> - . - <p><b>Usage</b> </p> - - <p><tt>void glutUseLayer ( GLenum -layer ) ;</tt> </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutUseLayer</tt>" function -is not implemented in <i>freeglut</i>. </p> - - <p><b>Changes From GLUT</b> </p> - - <p>GLUT implements this function. </p> - - <h2> 9.4 glutPostOverlayRedisplay</h2> - The "<tt>glutPostOverlayRedisplay</tt> " function is not implemented in - <i> freeglut</i>. - - <p><b>Usage</b> </p> - - <p><tt>void glutPostOverlayRedisplay ( void -) ;</tt> </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutPostOverlayRedisplay</tt> - " function is not implemented in <i>freeglut</i>. </p> - - <p><b>Changes From GLUT</b> </p> - - <p>GLUT implements this function. </p> - - <h2> 9.5 glutPostWindowOverlayRedisplay</h2> - The "<tt>glutPostWindowOverlayRedisplay</tt> " function is not implemented - in <i>freeglut</i>. - <p><b>Usage</b> </p> - - <p><tt>void glutPostWindowOverlayRedisplay -( int window ) ;</tt> </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutPostWindowOverlayRedisplay</tt> - " function is not implemented in <i>freeglut</i>. </p> - - <p><b>Changes From GLUT</b> </p> - - <p>GLUT implements this function. </p> - - <h2> 9.6 glutShowOverlay, glutHideOverlay</h2> - The "<tt>glutShowOverlay</tt>" and "<tt>glutHideOverlay</tt>" functions -are not implemented in <i>freeglut</i> . - - <p><b>Usage</b> </p> - - <p><tt>void glutShowOverlay( void ) ;</tt> - <br> - <tt>void glutHideOverlay( void ) ;</tt> - </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutShowOverlay</tt>" and "<tt> -glutHideOverlay</tt>" functions are not implemented in <i>freeglut</i> . - </p> - - <p><b>Changes From GLUT</b> </p> - - <p>GLUT implements these functions. </p> - - <h1> 10.0 <a name="Menu"></a> - Menu Functions</h1> - - <h2> 10.1 glutCreateMenu</h2> - - <h2> 10.2 glutDestroyMenu</h2> - - <h2> 10.3 glutGetMenu, glutSetMenu</h2> - - <h2> 10.4 glutAddMenuEntry</h2> - - <h2> 10.5 glutAddSubMenu</h2> - - <h2> 10.6 glutChangeToMenuEntry</h2> - - <h2> 10.7 glutChangeToSubMenu</h2> - - <h2> 10.8 glutRemoveMenuItem</h2> - - <h2> 10.9 glutAttachMenu, glutDetachMenu</h2> - - <h1> 11.0 <a name="GlobalCallback"></a> - Global Callback Registration Functions</h1> - - <h2> 11.1 glutTimerFunc</h2> - - <h2> 11.2 glutIdleFunc</h2> - The "<tt>glutIdleFunc</tt>" function sets the global idle callback. <i> -Freeglut</i> calls the idle callback when there are no inputs from the user. - - <p><b>Usage</b> </p> - - <p><tt>void glutIdleFunc ( void (*func) -( void ) ) ;</tt> </p> - - <p><tt>func </tt>The new -global idle callback function </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutIdleFunc</tt>" function -specifies the function that <i>freeglut</i> will call to perform background -processing tasks such as continuous animation when window system events are -not being received. If enabled, this function is called continuously -from <i>freeglut</i> while no events are received. The callback function -has no parameters and returns no value. <i>Freeglut</i> does not change -the <i>current window</i> or the <i>current menu</i> before invoking the idle -callback; programs with multiple windows or menus must explicitly set the - <i>current window</i> and <i>current menu</i> - and not rely on its current setting. <br> - The amount of computation and rendering done in an idle -callback should be minimized to avoid affecting the program's interactive - response. In general, no more than a single frame of rendering should - be done in a single invocation of an idle callback. <br> - Calling "<tt>glutIdleFunc</tt>" with a NULL argument -disables the call to an idle callback. </p> - - <p><b>Changes From GLUT</b> </p> - - <p>Application programmers should note that -if they have specified the "continue execution" action on window closure, - <i>freeglut</i> will continue to call the -idle callback after the user has closed a window by clicking on the "x" in -the window header bar. If the idle callback renders a particular window -(this is considered bad form but is frequently done anyway), the programmer -should supply a window closure callback for that window which changes or disables -the idle callback. </p> - - <h1> 12.0 <a name="WindowCallback"></a> - Window-Specific Callback Registration Functions</h1> - - <h2> 12.1 glutDisplayFunc</h2> - - <h2> 12.2 glutOverlayDisplayFunc</h2> - - <h2> 12.3 glutReshapeFunc</h2> - - <h2> 12.4 glutCloseFunc</h2> - - <h2> 12.5 glutKeyboardFunc</h2> - - <h2> 12.6 glutSpecialFunc</h2> - The "<tt>glutSpecialFunc</tt>" function sets the window's special key press - callback. <i>Freeglut</i> calls the special key press callback when the -user presses a special key. - <p><b>Usage</b> </p> - - <p><tt>void glutSpecialFunc ( void (*func) -( int key, int x, int y ) ) ;</tt> </p> - - <p><tt>func </tt>The window's -new special key press callback function <br> - <tt>key </tt>The -key whose press triggers the callback <br> - <tt>x - </tt>The x-coordinate of the mouse relative -to the window at the time the key is pressed <br> - <tt>y - </tt>The y-coordinate of the mouse relative -to the window at the time the key is pressed </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutSpecialFunc</tt>" -function specifies the function that <i>freeglut</i> will call when the user -presses a special key on the keyboard. The callback function has one -argument: the name of the function to be invoked ("called back") at -the time at which the special key is pressed. The function returns no -value. <i>Freeglut</i> sets the <i>current window</i> to the window -which is active when the callback is invoked. "Special keys" are the -function keys, the arrow keys, the Page Up and Page Down keys, and the Insert -key. The Delete key is considered to be a regular key. <br> - Calling "<tt>glutSpecialUpFunc</tt>" with a NULL argument -disables the call to the window's special key press callback. </p> - - <p> The "<tt>key</tt> -" argument may take one of the following defined constant values: </p> - - <ul> - <li> <tt>GLUT_KEY_F1, GLUT_KEY_F2, ..., GLUT_KEY_F12</tt> - - F1 through F12 keys</li> - <li> <tt>GLUT_KEY_PAGE_UP, GLUT_KEY_PAGE_DOWN</tt> - - Page Up and Page Down keys</li> - <li> <tt>GLUT_KEY_HOME, GLUT_KEY_END</tt> - - Home and End keys</li> - <li> <tt>GLUT_KEY_LEFT, GLUT_KEY_RIGHT, GLUT_KEY_UP, GLUT_KEY_DOWN</tt> - - arrow keys</li> - <li> <tt>GLUT_KEY_INSERT</tt> - - Insert key</li> - - </ul> - <b>Changes From GLUT</b> - <p>None. </p> - - <h2> 12.7 glutKeyboardUpFunc</h2> - The "<tt>glutKeyboardUpFunc</tt>" function sets the window's key release - callback. <i>Freeglut</i> calls the key release callback when the user releases -a key. - <p><b>Usage</b> </p> - - <p><tt>void glutKeyboardUpFunc ( void (*func) -( unsigned char key, int x, int y ) ) ;</tt> </p> - - <p><tt>func </tt>The window's -new key release callback function <br> - <tt>key </tt>The -key whose release triggers the callback <br> - <tt>x - </tt>The x-coordinate of the mouse relative -to the window at the time the key is released <br> - <tt>y - </tt>The y-coordinate of the mouse relative -to the window at the time the key is released </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutKeyboardUpFunc</tt> -" function specifies the function that <i>freeglut</i> will call when the -user releases a key from the keyboard. The callback function has one -argument: the name of the function to be invoked ("called back") at -the time at which the key is released. The function returns no value. - <i>Freeglut</i> sets the <i>current window</i> - to the window which is active when the callback is invoked. <br> - While <i>freeglut</i> checks for upper or lower case -letters, it does not do so for non-alphabetical characters. Nor does -it account for the Caps-Lock key being on. The operating system may -send some unexpected characters to <i>freeglut</i>, such as "8" when the -user is pressing the Shift key. <i>Freeglut</i> also invokes the callback -when the user releases the Control, Alt, or Shift keys, among others. -Releasing the Delete key causes this function to be invoked with a value -of 127 for "<tt>key</tt>". <br> - Calling "<tt>glutKeyboardUpFunc</tt>" with a NULL argument -disables the call to the window's key release callback. </p> - - <p><b>Changes From GLUT</b> </p> - - <p>This function is not implemented in GLUT -versions before Version 4. It has been designed to be as close to GLUT -as possible. Users who find differences should contact the - <i>freeglut</i> Programming Consortium to -have them fixed. </p> - - <h2> 12.8 glutSpecialUpFunc</h2> - The "<tt>glutSpecialUpFunc</tt>" function sets the window's special key -release callback. <i>Freeglut</i> calls the special key release callback -when the user releases a special key. - <p><b>Usage</b> </p> - - <p><tt>void glutSpecialUpFunc ( void (*func) -( int key, int x, int y ) ) ;</tt> </p> - - <p><tt>func </tt>The window's -new special key release callback function <br> - <tt>key </tt>The -key whose release triggers the callback <br> - <tt>x - </tt>The x-coordinate of the mouse relative -to the window at the time the key is released <br> - <tt>y - </tt>The y-coordinate of the mouse relative -to the window at the time the key is released </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutSpecialUpFunc</tt> -" function specifies the function that <i>freeglut</i> will call when the -user releases a special key from the keyboard. The callback function -has one argument: the name of the function to be invoked ("called back") -at the time at which the special key is released. The function returns -no value. <i>Freeglut</i> sets the <i>current window</i> to the window -which is active when the callback is invoked. "Special keys" are the -function keys, the arrow keys, the Page Up and Page Down keys, and the Insert -key. The Delete key is considered to be a regular key. <br> - Calling "<tt>glutSpecialUpFunc</tt>" with a NULL argument -disables the call to the window's special key release callback. </p> - - <p> The "<tt>key</tt> -" argument may take one of the following defined constant values: </p> - - <ul> - <li> <tt>GLUT_KEY_F1, GLUT_KEY_F2, ..., GLUT_KEY_F12</tt> - - F1 through F12 keys</li> - <li> <tt>GLUT_KEY_PAGE_UP, GLUT_KEY_PAGE_DOWN</tt> - - Page Up and Page Down keys</li> - <li> <tt>GLUT_KEY_HOME, GLUT_KEY_END</tt> - - Home and End keys</li> - <li> <tt>GLUT_KEY_LEFT, GLUT_KEY_RIGHT, GLUT_KEY_UP, GLUT_KEY_DOWN</tt> - - arrow keys</li> - <li> <tt>GLUT_KEY_INSERT</tt> - - Insert key</li> - - </ul> - <b>Changes From GLUT</b> - <p>This function is not implemented in GLUT -versions before Version 4. It has been designed to be as close to GLUT -as possible. Users who find differences should contact the - <i>freeglut</i> Programming Consortium to -have them fixed. </p> - - <h2> 12.9 glutMouseFunc</h2> - - <h2> 12.10 glutMotionFunc, glutPassiveMotionFunc</h2> - - <h2> 12.11 glutVisibilityFunc</h2> - - <h2> 12.12 glutEntryFunc</h2> - - <h2> 12.13 glutJoystickFunc</h2> - - <h2> 12.14 glutSpaceballMotionFunc</h2> - The "<tt>glutSpaceballMotionFunc</tt>" function is not implemented in - <i>freeglut</i>, although the library does -"answer the mail" to the extent that a call to the function will not produce -an error.. - <p><b>Usage</b></p> - - <p><tt>void glutSpaceballMotionFunc ( void -(* callback)( int x, int y, int z )</tt><tt> ) ;</tt></p> - - <p><b>Description</b></p> - - <p>The "<tt>glutSpaceballMotionFunc</tt> - " function is not implemented in <i>freeglut</i>. </p> - - <p><b>Changes From GLUT</b></p> - - <p>GLUT implements this function. </p> - - <h2> 12.15 glutSpaceballRotateFunc</h2> - The "<tt>glutSpaceballRotateFunc</tt>" function is not implemented in - <i>freeglut</i>, although the library does -"answer the mail" to the extent that a call to the function will not produce -an error.. - <p><b>Usage</b></p> - - <p><tt>void glutSpaceballRotateFunc ( void -(* callback)( int x, int y, int z )</tt><tt> ) ;</tt></p> - - <p><b>Description</b></p> - - <p>The "<tt>glutSpaceballRotateFunc</tt> - " function is not implemented in <i>freeglut</i>. </p> - - <p><b>Changes From GLUT</b></p> - - <p>GLUT implements this function. </p> - - <h2> 12.16 glutSpaceballButtonFunc</h2> - The "<tt>glutSpaceballButtonFunc</tt>" function is not implemented in - <i>freeglut</i>, although the library does -"answer the mail" to the extent that a call to the function will not produce -an error.. - <p><b>Usage</b></p> - - <p><tt>void glutSpaceballButtonFunc ( void -(* callback)( int button, int updown )</tt><tt> ) ;</tt></p> - - <p><b>Description</b></p> - - <p>The "<tt>glutSpaceballButtonFunc</tt> - " function is not implemented in <i>freeglut</i>. </p> - - <p><b>Changes From GLUT</b></p> - - <p>GLUT implements this function. </p> - - <h2> 12.17 glutButtonBoxFunc</h2> - The "<tt>glutSpaceballButtonBoxFunc</tt>" function is not implemented -in <i>freeglut</i>, although the library does "answer the mail" to the extent -that a call to the function will not produce an error.. - - <p><b>Usage</b></p> - - <p><tt>void glutSpaceballButtonBoxFunc ( -void (* callback)( int button, int updown )</tt><tt> ) ;</tt></p> - - <p><b>Description</b></p> - - <p>The "<tt>glutSpaceballButtonBoxFunc</tt> - " function is not implemented in <i>freeglut</i>. </p> - - <p><b>Changes From GLUT</b></p> - - <p>GLUT implements this function. </p> - - <h2> 12.18 glutDialsFunc</h2> - The "<tt>glutDialsFunc</tt>" function is not implemented in <i>freeglut</i> - , although the library does "answer the mail" to the extent that a call -to the function will not produce an error.. - - <p><b>Usage</b></p> - - <p><tt>void glutDialsFunc ( void (* callback)( -int dial, int value )</tt><tt> ) ;</tt></p> - - <p><b>Description</b></p> - - <p>The "<tt>glutDialsFunc</tt>" function -is not implemented in <i>freeglut</i>. </p> - - <p><b>Changes From GLUT</b></p> - - <p>GLUT implements this function. </p> - - <h2> 12.19 glutTabletMotionFunc</h2> - The "<tt>glutTabletMotionFunc</tt>" function is not implemented in <i> - freeglut</i>, although the library does "answer the mail" to the extent -that a call to the function will not produce an error.. - - <p><b>Usage</b></p> - - <p><tt>void glutTabletMotionFunc ( void -(* callback)( int x, int y )</tt><tt> ) ;</tt></p> - - <p><b>Description</b></p> - - <p>The "<tt>glutTabletMotionFunc</tt>" function -is not implemented in <i>freeglut</i>. </p> - - <p><b>Changes From GLUT</b></p> - - <p>GLUT implements this function. </p> - - <h2> 12.20 glutTabletButtonFunc</h2> - The "<tt>glutTabletButtonFunc</tt>" function is not implemented in <i> - freeglut</i>, although the library does "answer the mail" to the extent -that a call to the function will not produce an error.. - - <p><b>Usage</b></p> - - <p><tt>void glutTabletButtonFunc ( void -(* callback)( int button, int updown, int x, int y )</tt><tt> ) ;</tt></p> - - <p><b>Description</b></p> - - <p>The "<tt>glutTabletButtonFunc</tt>" function -is not implemented in <i>freeglut</i>. </p> - - <p><b>Changes From GLUT</b></p> - - <p>GLUT implements this function. </p> - - <h2> 12.21 glutMenuStatusFunc</h2> - - <h2> 12.22 glutWindowStatusFunc</h2> - - <h1> 13.0 <a name="StateSetting"></a> - State Setting and Retrieval Functions</h1> - - <h2> 13.1 glutSetOption</h2> - - <h2> 13.2 glutGet</h2> - - -<p> -The following state variables may be queried with "<tt>glutGet</tt>". -The returned value is an integer. -</p> - -<p> -These queries are with respect to the current window: -</p> - -<ul> -<li>GLUT_WINDOW_X - window X position -<li>GLUT_WINDOW_Y - window Y position -<li>GLUT_WINDOW_WIDTH - window width -<li>GLUT_WINDOW_HEIGHT - window height -<li>GLUT_WINDOW_BUFFER_SIZE - number of color or color index bits per pixel -<li>GLUT_WINDOW_STENCIL_SIZE - number of bits per stencil value -<li>GLUT_WINDOW_DEPTH_SIZE - number of bits per depth value -<li>GLUT_WINDOW_RED_SIZE - number of bits per red value -<li>GLUT_WINDOW_GREEN_SIZE - number of bits per green value -<li>GLUT_WINDOW_BLUE_SIZE - number of bits per blue value -<li>GLUT_WINDOW_ALPHA_SIZE - number of bits per alpha value -<li>GLUT_WINDOW_ACCUM_RED_SIZE - number of red bits in the accumulation buffer -<li>GLUT_WINDOW_ACCUM_GREEN_SIZE - number of green bits in the accumulation buffer -<li>GLUT_WINDOW_ACCUM_BLUE_SIZE - number of blue bits in the accumulation buffer -<li>GLUT_WINDOW_ACCUM_ALPHA_SIZE - number of alpha bits in the accumulation buffer -<li>GLUT_WINDOW_DOUBLEBUFFER - 1 if the color buffer is double buffered, 0 otherwise -<li>GLUT_WINDOW_RGBA - 1 if the color buffers are RGB[A], 0 for color index -<li>GLUT_WINDOW_PARENT - parent window ID -<li>GLUT_WINDOW_NUM_CHILDREN - number of child windows -<li>GLUT_WINDOW_COLORMAP_SIZE - number of entries in the window's colormap -<li>GLUT_WINDOW_NUM_SAMPLES - number of samples per pixel if using multisampling -<li>GLUT_WINDOW_STEREO - 1 if the window supports stereo, 0 otherwise -<li>GLUT_WINDOW_CURSOR - current cursor -<li>GLUT_WINDOW_FORMAT_ID - on Windows, return the pixel format number of the current window -</ul> - -<p> -These queries do not depend on the current window. -</p> - -<ul> -<li>GLUT_SCREEN_WIDTH - width of the screen in pixels -<li>GLUT_SCREEN_HEIGHT - height of the screen in pixels -<li>GLUT_SCREEN_WIDTH_MM - width of the screen in millimeters -<li>GLUT_SCREEN_HEIGHT_MM - height of the screen in millimeters -<li>GLUT_MENU_NUM_ITEMS - number of items in the current menu -<li>GLUT_DISPLAY_MODE_POSSIBLE - return 1 if the current display mode is supported, 0 otherwise -<li>GLUT_INIT_WINDOW_X - X position last set by glutInitWindowPosition -<li>GLUT_INIT_WINDOW_Y - Y position last set by glutInitWindowPosition -<li>GLUT_INIT_WINDOW_WIDTH - width last set by glutInitWindowSize -<li>GLUT_INIT_WINDOW_HEIGHT - height last set by glutInitWindowSize -<li>GLUT_INIT_DISPLAY_MODE - display mode last set by glutInitDisplayMode -<li>GLUT_ELAPSED_TIME - time (in milliseconds) elapsed since glutInit or glutGet(GLUT_ELAPSED_TIME) was first called -<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 <i>freeglut</i> (version 2.0.0 or later). -</ul> - - - <h2> 13.3 glutDeviceGet</h2> - - <h2> 13.4 glutGetModifiers</h2> - - <h2> 13.5 glutLayerGet</h2> - - <h2> 13.6 glutExtensionSupported</h2> - - <h2> 13.7 glutGetProcAddress</h2> - <p><tt>glutGetProcAddress</tt> returns -a pointer to a named GL or <i>freeglut</i> function. </p> - <p><b>Usage</b></p> - <p><tt>void *glutGetProcAddress ( const -char *procName ) ;</tt></p> - <p><tt>procName - </tt>Name of an OpenGL or GLUT function. - </p> - <p><b>Description</b></p> - <p><tt>glutGetProcAddress</tt> is useful -for dealing with OpenGL extensions. If an application calls OpenGL extension -functions directly, that application will only link/run with an OpenGL library -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 <i>freeglut</i> -functions can be queried with this function. </p> - <p><b>Changes From GLUT</b> </p> - - <p>GLUT does not include this function. - </p> - - <h1> 14.0 <a name="FontRendering"></a> - Font Rendering Functions</h1> - <i>Freeglut</i> supports two types of font rendering: bitmap fonts, - which are rendered using the "<tt>glBitmap</tt>" function call, and stroke - fonts, which are rendered as sequences of OpenGL line segments. Because - they are rendered as bitmaps, the bitmap fonts tend to render more quickly - than stroke fonts, but they are less flexible in terms of scaling and rendering. - Bitmap font characters are positioned with calls to the "<tt>glRasterPos*</tt> - " functions while stroke font characters use the OpenGL transformations -to position characters. - <p> It should be noted -that <i>freeglut</i> fonts are similar but not identical to GLUT fonts. -At the moment, <i>freeglut</i> fonts do not support the "`" (backquote) and -"|" (vertical line) characters; in their place it renders asterisks. </p> - - <p> <i>Freeglut</i> supports -the following bitmap fonts: </p> - - <ul> - <li> <tt>GLUT_BITMAP_8_BY_13</tt> - A variable-width font with every character - fitting in a rectangle of 13 pixels high by at most 8 pixels wide.</li> - <li> <tt>GLUT_BITMAP_9_BY_15</tt> - A variable-width font with every character - fitting in a rectangle of 15 pixels high by at most 9 pixels wide.</li> - <li> <tt>GLUT_BITMAP_TIMES_ROMAN_10</tt> - A 10-point variable-width Times -Roman font.</li> - <li> <tt>GLUT_BITMAP_TIMES_ROMAN_24</tt> - A 24-point variable-width Times -Roman font.</li> - <li> <tt>GLUT_BITMAP_HELVETICA_10</tt> - A 10-point variable-width Helvetica - font.</li> - <li> <tt>GLUT_BITMAP_HELVETICA_12</tt> - A 12-point variable-width Helvetica - font.</li> - <li> <tt>GLUT_BITMAP_HELVETICA_18</tt> - A 18-point variable-width Helvetica - font.</li> - - </ul> - <i>Freeglut</i> calls "<tt>glRasterPos4v</tt>" to advance the cursor by -the width of a character and to render carriage returns when appropriate. - It does not use any display lists in it rendering in bitmap fonts. - - <p> <i>Freeglut</i> supports -the following stroke fonts: </p> - - <ul> - <li> <tt>GLUT_STROKE_ROMAN</tt> - A proportionally-spaced Roman Simplex -font</li> - <li> <tt>GLUT_STROKE_MONO_ROMAN</tt> - A fixed-width Roman Simplex font</li> - - </ul> - <i>Freeglut</i> does not use any display lists in its rendering of stroke - fonts. It calls "<tt>glTranslatef</tt>" to advance the cursor by the -width of a character and to render carriage returns when appropriate. - - <h2> 14.1 glutBitmapCharacter</h2> - The "<tt>glutBitmapCharacter</tt>" function renders a single bitmapped -character in the <i>current window</i> using the specified font. - - <p><b>Usage</b> </p> - - <p><tt>void glutBitmapCharacter ( void *font, -int character ) ;</tt> </p> - - <p><tt>font - </tt>The bitmapped font to use in rendering -the character <br> - <tt>character </tt>The ASCII -code of the character to be rendered </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutBitmapCharacter</tt> - " function renders the given character in the specified bitmap font. - <i>Freeglut</i> automatically sets the necessary -pixel unpack storage modes and restores the existing modes when it has finished. -Before the first call to "<tt>glutBitMapCharacter</tt> " the application -program should call "<tt>glRasterPos*</tt>" to set the position of the character -in the window. The "<tt>glutBitmapCharacter</tt> " function advances -the cursor position as part of its call to "<tt>glBitmap</tt> " and so the -application does not need to call "<tt>glRasterPos*</tt>" again for successive -characters on the same line. </p> - - <p><b>Changes From GLUT</b> </p> - - <p>Nonexistent characters are rendered as -asterisks. The rendering position in <i>freeglut</i> is apparently off -from GLUT's position by a few pixels vertically and one or two pixels horizontally. - </p> - - <h2> 14.2 glutBitmapString</h2> - The "<tt>glutBitmapString</tt>" function renders a string of bitmapped -characters in the <i>current window</i> using the specified font. - - <p><b>Usage</b> </p> - - <p><tt>void glutBitmapString ( void *font, -char *string ) ;</tt> </p> - - <p><tt>font - </tt>The bitmapped font to use in rendering -the character string <br> - <tt>string </tt>String -of characters to be rendered </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutBitmapString</tt> - " function renders the given character string in the specified bitmap font. - <i>Freeglut</i> automatically sets the necessary -pixel unpack storage modes and restores the existing modes when it has finished. -Before calling "<tt>glutBitMapString</tt>" the application program should -call "<tt>glRasterPos*</tt>" to set the position of the string in the window. -The "<tt>glutBitmapString</tt>" function handles carriage returns. -Nonexistent characters are rendered as asterisks. </p> - - <p><b>Changes From GLUT</b> </p> - - <p>GLUT does not include this function. - </p> - - <h2> 14.3 glutBitmapWidth</h2> - The "<tt>glutBitmapWidth</tt>" function returns the width in pixels of -a single bitmapped character in the specified font. - - <p><b>Usage</b> </p> - - <p><tt>int glutBitmapWidth ( void *font, -int character ) ;</tt> </p> - - <p><tt>font - </tt>The bitmapped font to use in calculating -the character width <br> - <tt>character </tt>The ASCII -code of the character </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutBitmapWidth</tt>" -function returns the width of the given character in the specified bitmap -font. Because the font is bitmapped, the width is an exact integer. - </p> - - <p><b>Changes From GLUT</b> </p> - - <p>Nonexistent characters return the width -of an asterisk. </p> - - <h2> 14.4 glutBitmapLength</h2> - The "<tt>glutBitmapLength</tt>" function returns the width in pixels of -a string of bitmapped characters in the specified font. - - <p><b>Usage</b> </p> - - <p><tt>int glutBitmapLength ( void *font, -char *string ) ;</tt> </p> - - <p><tt>font </tt>The bitmapped -font to use in calculating the character width <br> - <tt>string </tt>String of characters -whose width is to be calculated </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutBitmapLength</tt> - " function returns the width in pixels of the given character string in -the specified bitmap font. Because the font is bitmapped, the width -is an exact integer: the return value is identical to the sum of the -character widths returned by a series of calls to "<tt>glutBitmapWidth</tt> -". The width of nonexistent characters is counted to be the width of -an asterisk. </p> - - <p> If the string contains -one or more carriage returns, <i>freeglut</i> calculates the widths in pixels -of the lines separately and returns the largest width. </p> - - <p><b>Changes From GLUT</b> </p> - - <p>GLUT does not include this function. - </p> - - <h2> 14.5 glutBitmapHeight</h2> - The "<tt>glutBitmapHeight</tt>" function returns the height in pixels of - the specified font. - <p><b>Usage</b> </p> - - <p><tt>int glutBitmapHeight ( void *font -) ;</tt> </p> - - <p><tt>font - </tt>The bitmapped font to use in calculating -the character height </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutBitmapHeight</tt> - " function returns the height of a character in the specified bitmap font. -Because the font is bitmapped, the height is an exact integer. The fonts -are designed such that all characters have (nominally) the same height. - </p> - - <p><b>Changes From GLUT</b> </p> - - <p>GLUT does not include this function. - </p> - - <h2> 14.6 glutStrokeCharacter</h2> - The "<tt>glutStrokeCharacter</tt>" function renders a single stroke character - in the <i>current window</i> using the specified font. - - <p><b>Usage</b> </p> - - <p><tt>void glutStrokeCharacter ( void *font, -int character ) ;</tt> </p> - - <p><tt>font - </tt>The stroke font to use in rendering -the character <br> - <tt>character </tt>The ASCII -code of the character to be rendered </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutStrokeCharacter</tt> - " function renders the given character in the specified stroke font. -Before the first call to "<tt>glutStrokeCharacter</tt>" the application program -should call the OpenGL transformation (positioning and scaling) functions -to set the position of the character in the window. The "<tt>glutStrokeCharacter</tt> - " function advances the cursor position by a call to "<tt>glTranslatef</tt> - " and so the application does not need to call the OpenGL positioning functions - again for successive characters on the same line. </p> - - <p><b>Changes From GLUT</b> </p> - - <p>Nonexistent characters are rendered as -asterisks. </p> - - <h2> 14.7 glutStrokeString</h2> - The "<tt>glutStrokeString</tt>" function renders a string of characters -in the <i>current window</i> using the specified stroke font. - - <p><b>Usage</b> </p> - - <p><tt>void glutStrokeString ( void *font, -char *string ) ;</tt> </p> - - <p><tt>font - </tt>The stroke font to use in rendering -the character string <br> - <tt>string </tt>String -of characters to be rendered </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutStrokeString</tt> - " function renders the given character string in the specified stroke font. -Before calling "<tt>glutStrokeString</tt>" the application program should -call the OpenGL transformation (positioning and scaling) functions to set -the position of the string in the window. The "<tt>glutStrokeString</tt> - " function handles carriage returns. Nonexistent characters are rendered -as asterisks. </p> - - <p><b>Changes From GLUT</b> </p> - - <p>GLUT does not include this function. - </p> - - <h2> 14.8 glutStrokeWidth</h2> - The "<tt>glutStrokeWidth</tt>" function returns the width in pixels of -a single character in the specified stroke font. - - <p><b>Usage</b> </p> - - <p><tt>int glutStrokeWidth ( void *font, -int character ) ;</tt> </p> - - <p><tt>font - </tt>The stroke font to use in calculating -the character width <br> - <tt>character </tt>The ASCII -code of the character </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutStrokeWidth</tt>" -function returns the width of the given character in the specified stroke -font. Because the font is a stroke font, the width is actually a floating-point -number; the function rounds it to the nearest integer for the return value. - </p> - - <p><b>Changes From GLUT</b> </p> - - <p>Nonexistent characters return the width -of an asterisk. </p> - - <h2> 14.9 glutStrokeLength</h2> - The "<tt>glutStrokeLength</tt>" function returns the width in pixels of -a string of characters in the specified stroke font. - - <p><b>Usage</b> </p> - - <p><tt>int glutStrokeLength ( void *font, -char *string ) ;</tt> </p> - - <p><tt>font </tt>The stroke -font to use in calculating the character width <br> - <tt>string </tt>String of characters -whose width is to be calculated </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutStrokeLength</tt> - " function returns the width in pixels of the given character string in -the specified stroke font. Because the font is a stroke font, the width -of an individual character is a floating-point number. <i>Freeglut</i> - adds the floating-point widths and rounds the funal result to return the -integer value. Thus the return value may differ from the sum of the -character widths returned by a series of calls to "<tt>glutStrokeWidth</tt> - ". The width of nonexistent characters is counted to be the width -of an asterisk. </p> - - <p> If the string contains -one or more carriage returns, <i>freeglut</i> calculates the widths in pixels -of the lines separately and returns the largest width. </p> - - <p><b>Changes From GLUT</b> </p> - - <p>GLUT does not include this function. - </p> - - <h2> 14.10 glutStrokeHeight</h2> - The "<tt>glutStrokeHeight</tt>" function returns the height in pixels of - the specified font. - <p><b>Usage</b> </p> - - <p><tt>GLfloat glutStrokeHeight ( void *font -) ;</tt> </p> - - <p><tt>font - </tt>The stroke font to use in calculating -the character height </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutStrokeHeight</tt> - " function returns the height of a character in the specified stroke font. -The application programmer should note that, unlike the other <i>freeglut</i> - font functions, this one returns a floating-point number. The fonts -are designed such that all characters have (nominally) the same height. </p> - - <p><b>Changes From GLUT</b> </p> - - <p>GLUT does not include this function. - </p> - - <h1> 15.0 <a name="GeometricObject"></a> - Geometric Object Rendering Functions</h1> - <i>Freeglut</i> includes eighteen routines for generating easily-recognizable - 3-d geometric objects. These routines are effectively the same ones - that are included in the GLUT library, and reflect the functionality available - in the <i>aux</i> toolkit described in the <i>OpenGL Programmer's Guide</i> - . They are included to allow programmers to create with a single -line of code a three-dimensional object which can be used to test a variety -of OpenGL functionality. None of the routines generates a display list -for the object which it draws. The functions generate normals appropriate -for lighting but, except for the teapon functions, do not generate texture -coordinates. - <h2> 15.1 glutWireSphere, glutSolidSphere</h2> - The "<tt>glutWireSphere</tt>" and "<tt>glutSolidSphere</tt>" functions -draw a wireframe and solid sphere respectively. - - <p><b>Usage</b> </p> - - <p><tt>void glutWireSphere ( GLdouble dRadius, -GLint slices, GLint stacks ) ;</tt> </p> - - <p><tt>void glutSolidSphere ( GLdouble dRadius, -GLint slices, GLint stacks ) ;</tt> </p> - - <p><tt>dRadius - </tt>The desired radius of the sphere </p> - - <p><tt>slices - </tt>The desired number of slices (divisions -in the longitudinal direction) in the sphere </p> - - <p><tt>stacks - </tt>The desired number of stacks (divisions -in the latitudinal direction) in the sphere. The number of points in -this direction, including the north and south poles, is <tt>stacks+1</tt> - </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutWireSphere</tt>" and "<tt> - glutSolidSphere</tt>" functions render a sphere centered at the origin -of the modeling coordinate system. The north and south poles of the -sphere are on the positive and negative Z-axes respectively and the prime -meridian crosses the positive X-axis. </p> - - <p><b>Changes From GLUT</b> </p> - - <p>None that we know of. </p> - - <h2> 15.2 glutWireTorus, glutSolidTorus</h2> - The "<tt>glutWireTorus</tt>" and "<tt>glutSolidTorus</tt>" functions draw - a wireframe and solid torus (donut shape) respectively. - - <p><b>Usage</b> </p> - - <p><tt>void glutWireTorus ( GLdouble dInnerRadius, -GLdouble dOuterRadius, GLint nSides, GLint nRings ) ;</tt> </p> - - <p><tt>void glutSolidTorus ( GLdouble dInnerRadius, -GLdouble dOuterRadius, GLint nSides, GLint nRings ) ;</tt> </p> - - <p><tt>dInnerRadius - </tt>The desired inner radius of the torus, -from the origin to the circle defining the centers of the outer circles </p> - - <p><tt>dOuterRadius - </tt>The desired outer radius of the torus, -from the center of the outer circle to the actual surface of the torus </p> - - <p><tt>nSides - </tt>The desired number of segments in a -single outer circle of the torus </p> - - <p><tt>nRings - </tt>The desired number of outer circles -around the origin of the torus </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutWireTorus</tt>" and "<tt> - glutSolidTorus</tt>" functions render a torus centered at the origin of -the modeling coordinate system. The torus is circularly symmetric about -the Z-axis and starts at the positive X-axis. </p> - - <p><b>Changes From GLUT</b> </p> - - <p>None that we know of. </p> - - <h2> 15.3 glutWireCone, glutSolidCone</h2> - The "<tt>glutWireCone</tt>" and "<tt>glutSolidCone</tt>" functions draw -a wireframe and solid cone respectively. - - <p><b>Usage</b> </p> - - <p><tt>void glutWireCone ( GLdouble base, -GLdouble height, GLint slices, GLint stacks ) ;</tt> </p> - - <p><tt>void glutSolidCone ( GLdouble base, -GLdouble height, GLint slices, GLint stacks ) ;</tt> </p> - - <p><tt>base - </tt>The desired radius of the base of the -cone </p> - - <p><tt>height - </tt>The desired height of the cone </p> - - <p><tt>slices - </tt>The desired number of slices around -the base of the cone </p> - - <p><tt>stacks - </tt>The desired number of segments between -the base and the tip of the cone (the number of points, including the tip, -is <tt>stacks + 1</tt>) </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutWireCone</tt>" and "<tt> - glutSolidCone</tt>" functions render a right circular cone with a base -centered at the origin and in the X-Y plane and its tip on the positive Z-axis. -The wire cone is rendered with triangular elements. </p> - - <p><b>Changes From GLUT</b> </p> - - <p>None that we know of. </p> - - <h2> 15.4 glutWireCube, glutSolidCube</h2> - The "<tt>glutWireCube</tt>" and "<tt>glutSolidCube</tt>" functions draw -a wireframe and solid cube respectively. - - <p><b>Usage</b> </p> - - <p><tt>void glutWireCube ( GLdouble dSize -) ;</tt> </p> - - <p><tt>void glutSolidCube ( GLdouble dSize -) ;</tt> </p> - - <p><tt>dSize - </tt>The desired length of an edge of the -cube </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutWireCube</tt>" and "<tt> - glutSolidCube</tt>" functions render a cube of the desired size, centered -at the origin. Its faces are normal to the coordinate directions. </p> - - <p><b>Changes From GLUT</b> </p> - - <p>None that we know of. </p> - - <h2> 15.5 glutWireTetrahedron, glutSolidTetrahedron</h2> - The "<tt>glutWireTetrahedron</tt>" and "<tt>glutSolidTetrahedron</tt>" -functions draw a wireframe and solid tetrahedron (four-sided Platonic solid) -respectively. - <p><b>Usage</b> </p> - - <p><tt>void glutWireTetrahedron ( void ) -;</tt> </p> - - <p><tt>void glutSolidTetrahedron ( void -) ;</tt> </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutWireTetrahedron</tt>" and -"<tt>glutSolidTetrahedron</tt>" functions render a tetrahedron whose corners -are each a distance of one from the origin. The length of each side -is 2/3 sqrt(6). One corner is on the positive X-axis and another is -in the X-Y plane with a positive Y-coordinate. </p> - - <p><b>Changes From GLUT</b> </p> - - <p>None that we know of. </p> - - <h2> 15.6 glutWireOctahedron, glutSolidOctahedron</h2> - The "<tt>glutWireOctahedron</tt>" and "<tt>glutSolidOctahedron</tt>" functions - draw a wireframe and solid octahedron (eight-sided Platonic solid) respectively. - - <p><b>Usage</b> </p> - - <p><tt>void glutWireOctahedron ( void ) -;</tt> </p> - - <p><tt>void glutSolidOctahedron ( void ) -;</tt> </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutWireOctahedron</tt>" and -"<tt>glutSolidOctahedron</tt>" functions render an octahedron whose corners -are each a distance of one from the origin. The length of each side -is sqrt(2). The corners are on the positive and negative coordinate -axes. </p> - - <p><b>Changes From GLUT</b> </p> - - <p>None that we know of. </p> - - <h2> 15.7 glutWireDodecahedron, glutSolidDodecahedron</h2> - The "<tt>glutWireDodecahedron</tt>" and "<tt>glutSolidDodecahedron</tt> -" functions draw a wireframe and solid dodecahedron (twelve-sided Platonic -solid) respectively. - <p><b>Usage</b> </p> - - <p><tt>void glutWireDodecahedron ( void -) ;</tt> </p> - - <p><tt>void glutSolidDodecahedron ( void -) ;</tt> </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutWireDodecahedron</tt>" and -"<tt>glutSolidDodecahedron</tt>" functions render a dodecahedron whose corners -are each a distance of sqrt(3) from the origin. The length of each -side is sqrt(5)-1. There are twenty corners; interestingly enough, -eight of them coincide with the corners of a cube with sizes of length 2. - </p> - - <p><b>Changes From GLUT</b> </p> - - <p>None that we know of. </p> - - <h2> 15.8 glutWireIcosahedron, glutSolidIcosahedron</h2> - The "<tt>glutWireIcosahedron</tt>" and "<tt>glutSolidIcosahedron</tt>" -functions draw a wireframe and solid icosahedron (twenty-sided Platonic solid) -respectively. - <p><b>Usage</b> </p> - - <p><tt>void glutWireIcosahedron ( void ) -;</tt> </p> - - <p><tt>void glutSolidIcosahedron ( void -) ;</tt> </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutWireIcosahedron</tt>" and -"<tt>glutSolidIcosahedron</tt>" functions render an icosahedron whose corners -are each a unit distance from the origin. The length of each side is -slightly greater than one. Two of the corners lie on the positive and -negative X-axes. </p> - - <p><b>Changes From GLUT</b> </p> - - <p>None that we know of. </p> - - <h2> 15.7 glutWireRhombicDodecahedron, -glutSolidRhombicDodecahedron</h2> - The "<tt>glutWireRhombicDodecahedron</tt>" and "<tt>glutSolidRhombicDodecahedron</tt> - " functions draw a wireframe and solid rhombic dodecahedron (twelve-sided - semi-regular solid) respectively. - <p><b>Usage</b> </p> - - <p><tt>void glutWireRhombicDodecahedron -( void ) ;</tt> </p> - - <p><tt>void glutSolidRhombicDodecahedron -( void ) ;</tt> </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutWireRhombicDodecahedron</tt> - " and "<tt>glutSolidRhombicDodecahedron</tt>" functions render a rhombic -dodecahedron whose corners are at most a distance of one from the origin. -The rhombic dodecahedron has faces which are identical rhombuses (rhombi?) -but which have some vertices at which three faces meet and some vertices at -which four faces meet. The length of each side is sqrt(3)/2. Vertices -at which four faces meet are found at (0, 0, <u>+</u>1) and (<u> +</u>sqrt(2)/2, - <u>+</u>sqrt(2)/2, 0). </p> - - <p><b>Changes From GLUT</b> </p> - - <p>GLUT does not include these functions. - </p> - - <h2> 15.10 glutWireTeapot, glutSolidTeapot</h2> - The "<tt>glutWireTeapot</tt>" and "<tt>glutSolidTeapot</tt>" functions -draw a wireframe and solid teapot respectively. - - <p><b>Usage</b> </p> - - <p><tt>void glutWireTeapot ( GLdouble dSize -) ;</tt> </p> - - <p><tt>void glutSolidTeapot ( GLdouble dSize -) ;</tt> </p> - - <p><tt>dSize - </tt>The desired size of the teapot </p> - - <p><b>Description</b> </p> - - <p>The "<tt>glutWireTeapot</tt>" and "<tt> - glutSolidTeapot</tt>" functions render a teapot of the desired size, centered -at the origin. This is the famous OpenGL teapot [add reference]. </p> - - <p><b>Changes From GLUT</b> </p> - - <p>None that we know of. </p> - - <h1> 16.0 <a name="GameMode"></a> - Game Mode Functions</h1> - - <h2> 16.1 glutGameModeString</h2> - - <h2> 16.2 glutEnterGameMode, glutLeaveGameMode</h2> - - <h2> 16.3 glutGameModeGet</h2> - - <h1> 17.0 <a name="VideoResize"></a> - Video Resize Functions</h1> - - <h2> 17.1 glutVideoResizeGet</h2> - - <h2> 17.2 glutSetupVideoResizing, -glutStopVideoResizing</h2> - - <h2> 17.3 glutVideoResize</h2> - - <h2> 17.4 glutVideoPan</h2> - - <h1> 18.0 <a name="ColorMap"></a> - Color Map Functions</h1> - - <h2> 18.1 glutSetColor, glutGetColor</h2> - - <h2> 18.2 glutCopyColormap</h2> - - <h1> 19.0 <a name="Miscellaneous"></a> - Miscellaneous Functions</h1> - - <h2> 19.1 glutIgnoreKeyRepeat, glutSetKeyRepeat</h2> - - <h2> 19.2 glutForceJoystickFunc</h2> - - <h2> 19.3 glutReportErrors</h2> - - <h1> 20.0 <a name="UsageNotes"></a> - Usage Notes</h1> - - <p> The following environment variables -are recognized by <i>freeglut</i>: </p> - <ul> - <li>DISPLAY - specifies a display name.<br> - </li> - <li>GLUT_FPS - specifies a time interval -(in milliseconds) for reporting framerate messages to stderr. For example, -if FREEGLUT_FPS is set to 5000, every 5 seconds a message will be printed -to stderr showing the current frame rate. The frame rate is measured by counting -the number of times glutSwapBuffers() is called over the time interval.</li> - <li>GLUT_ICON - specifies the icon that -goes in the upper left-hand corner of the <i>freeglut</i><i> </i>windows </li> - </ul> - <h1> 21.0 <a name="ImplementationNotes"></a> - Implementation Notes</h1> - -<h1> 22.0 <a name="GLUT_State"></a> -GLUT State</h1> - -<h1> 23.0 <a name="Freeglut.h_Header"></a> -"freeglut.h" Header File</h1> - - -<p> -Application programmers who are porting their GLUT programs to <i>freeglut</i> may continue -to include <tt><GL/glut.h></tt> in their programs. -Programs which use the <i>freeglut</i>-specific extensions to GLUT should include -<tt><GL/freeglut.h></tt>. One possible arrangement is as follows: -</p> - -<pre> -#ifdef FREEGLUT -#include <GL/freeglut_ext.h> -#else -#include <GL/glut.h> -#endif -</pre> - -<p> -Compile-time <i>freeglut</i> version testing can be done as follows: -</p> - -<pre> -#ifdef FREEGLUT_VERSION_2_0 - code specific to freeglut 2.0 or later here -#endif -</pre> - -<p> -In future releases, FREEGLUT_VERSION_2_1, FREEGLUT_VERSION_2_2, etc will -be defined. This scheme mimics OpenGL conventions. -</p> - -<p> -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> -<p> -This may be used as follows: -</p> - -<pre> -if (glutGet(GLUT_VERSION) < 20001) { - printf("Sorry, you need freeglut version 2.0.1 or later to run this program.\n"); - exit(1); -} -</pre> - - - -<h1> 24.0 <a name="References"></a> -References</h1> - -<h1> 25.0 <a name="Index"></a> -Index</h1> - -<p> <br> - <br> - <br> - <br> - <br> - <br> - <br> - <br> - <br> - <br> - <br> - <br> - <br> - <br> - <br> - <br> - <br> - <br> - <br> - <br> - <br> - <br> - </p> - - </body> - </html> diff --git a/gtk+-mingw/share/doc/freeglut-2.8.0/index.html b/gtk+-mingw/share/doc/freeglut-2.8.0/index.html deleted file mode 100644 index d511a9b..0000000 --- a/gtk+-mingw/share/doc/freeglut-2.8.0/index.html +++ /dev/null @@ -1,101 +0,0 @@ -<html> -<head> -<title>The freeglut project</title> -</head> -<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000"> - -<table> -<tr> -<td> - -<center><img SRC="freeglut_logo.png" ALT="The freeglut logo"></center> -<center><i><font size=+1> The free OpenGL utility toolkit </font></i></center> - -</td> -<td> - -<center><a href="http://sourceforge.net"> -<img src="http://sourceforge.net/sflogo.php?group_id=0&type=1" border="0"> -</a></center><br> -<center><i>Hosted at SourceForge</i></center> -</td> -</tr> -</table> - -<hr> - -<ul> - -<li><b><font size=+2>What</font></b> -<p> -freeglut is a completely OpenSourced alternative to the OpenGL Utility -Toolkit (GLUT) library. GLUT was originally written by Mark Kilgard -to support the sample programs in the second edition OpenGL 'RedBook'. -Since then, GLUT has been used in a wide variety of practical applications -because it is simple, universally available and highly portable. -<p> -GLUT (and hence freeglut) allows the user to create and manage -windows containing OpenGL contexts on a wide range of platforms and -also read the mouse, keyboard and joystick functions. -<p> -freeglut is released under the X-Consortium license. -<p> - -<li><b><font size=+2>Why</font></b> -<p> -The original GLUT library seems to have been abandoned with the most -recent version (3.7) dating back to August 1998. It's license does -not allow anyone to distribute modified the library code. This would -be OK, if not for the fact that GLUT is getting old and really needs -improvement. Also, GLUT's license is incompatible with some software -distributions (eg Xfree86). -<p> - -<li><b><font size=+2>Who</font></b> -<p> -freeglut was originally written by Pawel W. Olszta with contributions -from Andreas Umbach and Steve Baker. Steve is now the official -owner/maintainer of freeglut. -<p> - -<li><b><font size=+2>When</font></b> -<p> -Pawel started freeglut development on December 1st, 1999. -The project is now a virtually 100% replacement for the original -GLUT with only a few departures (such as the abandonment of SGI-specific -features such as the Dials&Buttons box and Dynamic Video Resolution). -<p> - -<li><b><font size=+2>Downloads</font></b> -<p> -Check the <a href="download.html"> -downloads page</a> for the latest release. -<p> - -<li><b><font size=+2>Support</font></b> -<p> -Send freeglut related questions to the appropriate freeglut mailing list: -<ul> -<li><a href="mailto:freeglut-developer@lists.sourceforge.net">freeglut-developer</a>, -<li><a href="mailto:freeglut-announce@lists.sourceforge.net">freeglut-announce</a> and -<li><a href="mailto:freeglut-bugs@lists.sourceforge.net">freeglut-bugs</a>. -</ul> -You can subscribe to them via the - <a href="http://sourceforge.net/project/?group_id=1032"> -SourceForge project interface</a>. -<p> - -<li><b><font size=+2>Documentation</font></b> -<p> -I believe this is enough for a short introduction. -If you are not tired of reading yet, check out the -<a href="freeglut.html">freeglut project log</a>. Here you will find the -yet-to-be-introduced new project <a href="structure.html">structure -description</a>. Finally, here you will find the latest -<a href="progress.html">work progress report</a>. Since freeglut is -a re-implementation of the original GLUT API, you can find API -documentation at <A HREF="http://www.opengl.org">http://www.opengl.org</A>. -<p> -</ul> -</body></html> - diff --git a/gtk+-mingw/share/doc/freeglut-2.8.0/ogl_sm.png b/gtk+-mingw/share/doc/freeglut-2.8.0/ogl_sm.png Binary files differdeleted file mode 100644 index 80baefc..0000000 --- a/gtk+-mingw/share/doc/freeglut-2.8.0/ogl_sm.png +++ /dev/null diff --git a/gtk+-mingw/share/doc/freeglut-2.8.0/progress.html b/gtk+-mingw/share/doc/freeglut-2.8.0/progress.html deleted file mode 100644 index 8a84483..0000000 --- a/gtk+-mingw/share/doc/freeglut-2.8.0/progress.html +++ /dev/null @@ -1,137 +0,0 @@ -<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> -<html> -<head> - <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> - <meta name="author" content="Pawel W. Olszta"> - <meta name="copyright" content="Pawel W. Olszta"> - <meta name="description" content="The freeglut development progress reports"> - <meta name="keywords" content="freeglut glut OpenGL"> - <meta name="GENERATOR" content="WebMaker"> - <title>The freeglut project</title> -</head> -<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000"> - -<center><img SRC="freeglut_logo.png" ALT="The freeglut logo" height=106 width=314></center> -<center><dt><i><font face="Courier New,Courier"><font size=+1> -I love reports. They are so full of brightness and hope... -</font></font></i></dt></center> - -<center><table WIDTH="620" ><tr><td><hr WIDTH="100%"> - -<p><i>January the 16th, 2000</i> - -<p>It looks like both X11 and Win32 version have reached a comparable usability stage. -They are still missing many GLUT API 3 features, but the number is getting smaller and -smaller every day :) - -<br><ul><li><b><font size=+2>input devices</font></b></li> - -<p>Keyboard and mouse seems to work well. There is a big guess about the mouse buttons -count under X11 (always 3) -- I must remember to correct the menu activation code if -this shows to be invalid. - -<p>None of the bizarre input devices found in GLUT API is supported (and probably won't). - -<p>Steve Baker contributed the joystick code. It should work fine, as it did in PLIB, -but I haven't tested it out yet. It might not compile under FreeBSD, as I had to -convert it from C++ to C and had no possibility to compile it under FreeBSD (the Win32 -version had some typos, but I've already fixed them). - -<br><br><li><b><font size=+2>pull-down menus</font></b></li> - -<p>Pull down menus seem to work. The menu is displayed using OpenGL, so it requires -the window's contents to be refreshed at an interactive rate, which sometimes does not -happen. That's why I'll consider adding optional window-system menu navigation later. -For now -- extensive testing is what I believe should be done with the menu system. - -<br><br><li><b><font size=+2>fonts</font></b></li> - -<p>Bitmap fonts support is done. However it would be good to add two more API functions --- glutBitmapString() and glutStrokeString(), which should limit the quantity of state -changes when drawing longer strings. - -<p>Good that somebody finally told me where to get the stroke fonts data from... XFree86 -sources contain the ROMAN and MONO ROMAN stroke fonts data. For now stroke fonts are -rendered using the bitmap font GLUT_BITMAP_8_BY_13. - -<p>What has changed is the way the fonts are specified. I moved to the GLUT's strange -way of supplying (fake for freeglut) font data pointers instead of some nice enums. -Hope it helps in achieving the binary compatibility between freeglut and GLUT. - -<p>Added two new API calls: glutBitmapHeight() and glutStrokeHeight(), that return -a font's height. Hope this doesn't break the GLUT compatibility a lot. - -<br><br><li><b><font size=+2>mouse cursor</font></b></li> - -<p>Need to have own cursor shapes, so that freeglut can pass them to the windowing -system, draw them using glBitmap() and/or texture mapping. The cursor shapes are very -probable to be found in XFree86 sources. - -<br><br><li><b><font size=+2>indexed color mode</font></b></li> - -<p>This might work, however I have not tested it yet. glutGetColor/glutSetColor is not -implemented. Again, looks like a single Xlib call, but there might be some problems -with the colormap access. Need to switch into indexed color mode some day and check it -out (does Mesa 3.1 work with indexed color mode?) - -<br><br><li><b><font size=+2>planes</font></b></li> - -<p>Overlays are not supported, but one of the GLUT conformance tests fails due to -glutLayerGet( GLUT_NORMAL_DAMAGED ) returning FALSE when the window has actually -been damaged. - -<p>Layers would be good for drawing the menus and mouse cursor, as they wouldn't force -the application redraw to update their state. - -<br><br><li><b><font size=+2>init display string</font></b></li> - -<p>I am in middle of the fight with the init display string. It's parsing OK, now it -would be cool to make it impress some effects on the display... - -<br><br><li><b><font size=+2>game mode</font></b></li> - -<p>Is the game mode string parsed correctly? - -<br><br><li><b><font size=+2>geometry</font></b></li> - -<p>Andreas Umbach has contributed the cube and sphere code. The teapot rendering is -done using free SGI code. I have also added the cone rendering, however it is missing -normal vectors (just as Andrea's wireframed cube does). All of the glut*hedron() -functions await to be implemented. - -<br><br><li><b><font size=+2>obvious bugs</font></b></li> - -<br><br><ol> -<li> -the visibility/window status function is a conceptual mess. I had to peer into the GLUT -source code to see what actually happens inside. It helped me a bit, but still one of -the visibility tests fails. This is probably the reason for which a window covered by -enlightenment status bar is marked as hidden and does not get redrawn.</li> - -<li> -GLX 1.3 spec states that glXChooseVisual() et consortes are deprecated. Should move to -glXFBConfig.</li> - -<li> -need to investigate what happens when initial window position is set to (-1,-1). GLUT -specification says, that the window positioning should be left to the window system. -And I do not know how to force it do so...</li> - -<li> -I was told it is wrong to have the redisplay forced in the main loop. Is that right?</li> - -</ol><br><li><b><font size=+2>not so obvious bugs</font></b></li> - -<br><br><ol> -<li>some of the tests freeze because they do not generate the glutPostRedisplay() call -every frame. Again, this is somehow handled by GLUT, but I can't see how. And why. - -<p>Looks like I've fixed it (or rather hacked it?) by forcing a redisplay every -frame, but this is no good and kills interactiveness of my console :D</li> - -</ol></ul> - -<a href="index.html"><i>Back to the main page</i></a> - -</table></center></body></html> - diff --git a/gtk+-mingw/share/doc/freeglut-2.8.0/structure.html b/gtk+-mingw/share/doc/freeglut-2.8.0/structure.html deleted file mode 100644 index a460567..0000000 --- a/gtk+-mingw/share/doc/freeglut-2.8.0/structure.html +++ /dev/null @@ -1,80 +0,0 @@ -<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> -<html> -<head> - <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> - <meta name="author" content="Pawel W. Olszta"> - <meta name="copyright" content="Pawel W. Olszta"> - <meta name="description" content="The freeglut project plans"> - <meta name="keywords" content="freeglut glut OpenGL"> - <meta name="GENERATOR" content="WebMaker"> - <title>The freeglut project</title> -</head> -<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000"> - -<center><img SRC="freeglut_logo.png" ALT="The freeglut logo" height=106 width=314></center> -<center><dt><i><font face="Courier New,Courier"><font size=+1> -I've got a master plan (to take your API down)... -</font></font></i></dt></center> - -<center><table WIDTH="620" ><tr><td><hr WIDTH="100%"> - -<p>After that I get the freeglut Windows port working in an acceptable manner and thus -getting assured that the freeglut internal structure is valid, I will split the project -into three separate parts, listed below. - -<br><ul><li><b><font size=+2>freeglut-common</font></b></li> - -<p>The least common denominator between the two freeglut versions. This will probably -contain most of the internal structure of the toolkit, notably the windows and menu -hierarchy, and possibly some private helpers. - -<br><br><li><b><font size=+2>freeglut-1.3</font></b></li> - -<p>The GLUT API 3 compatible library. This is what's can be found now in the alpha -release (apart from the bugs, naturally :D). - -<br><br><li><b><font size=+2>freeglut-2.0</font></b></li> - -<p>Hopefully this will be what GLUT should have been from the beginning. I will give -a try to design a much more coherent API than GLUT's, aiming at fast games prototyping. -<a href="mailto:olszta@sourceforge.net">Suggestions</a> are welcome.</ul> - -<br><p>Here's a list of propositions I have received so far. Hopefully this some day -turns into an API spefication proposal, not just a bunch of meaningless phrases...<br> - -<br><li>glutBitmapHeight() and glutStrokeHeight() -- I have added them to the -freeglut-1.3 API, they are already implemented and should work fine,</li> -<br><li>glutBitmapString() and glutStrokeString(), to write (multiple-line maybe) -strings, starting from the current raster position, using some simple formatting -maybe (changing the color, font, etc.?)</li> -<br><li>texture mapped fonts -- this is easy and could be added to freeglut-1.3, but -would require adding the...</li> -<br><li>glutHint() function to tell freeglut to: use bitmapped/texture mapped fonts, -draw the menus and mouse cursor using OpenGL/window system, and stuff...</li> -<br><li>glutMainLoop() termination and glutMainLoopStep() function, which should -perform a single check of pending events, so that one can have his own main loop,</li> -<br><li>multiple joysticks support with multiple axes, buttons, hats, etc. It is a real -good thing to do, yet the API to do the magic might result in being really twisted,</li> -<br><li>glutModifierFunc() could be added, or glutGetModifierState() should be allowed -to be called anywhere from the client's code</li> - -<br><p>We might also think about:<br> - -<br><li>freeglut-2.0 modularity via plugins, so that only the features that one -needs get loaded (plugins are easily supported by GLib),</li> -<br><li>OpenGL state management functions,</li> -<br><li>audio support -- using OpenAL maybe?,</li> -<br><li>a real menu system, not only the popups</li> -<br><li>non-OpenGL but portable UI, something like Java Swing</li> -<br><li>window-closing confirmation box (this is related to the above)</li> - -<br><p>Following ideas are bad for freeglut:<br> - -<br><li>more accurate timers under Win32 -- this goes to the GLib development afaik</li> -<br><li>portable file I/O, portable threads, plugins/modules -- this is already -done in GLib</li> - -<br><br><a href="index.html"><i>Back to the main page</i></a> - -</table></center></body></html> - |