From a4460f6d9453bbd7e584937686449cef3e19f052 Mon Sep 17 00:00:00 2001 From: Leo Tenenbaum Date: Mon, 20 Aug 2018 20:34:57 -0400 Subject: Initial commit --- gtk+-mingw/share/doc/freeglut-2.8.0/download.html | 42 + gtk+-mingw/share/doc/freeglut-2.8.0/freeglut.html | 163 ++ .../share/doc/freeglut-2.8.0/freeglut_logo.png | Bin 0 -> 15887 bytes .../freeglut-2.8.0/freeglut_user_interface.html | 1956 ++++++++++++++++++++ gtk+-mingw/share/doc/freeglut-2.8.0/index.html | 101 + gtk+-mingw/share/doc/freeglut-2.8.0/ogl_sm.png | Bin 0 -> 1586 bytes gtk+-mingw/share/doc/freeglut-2.8.0/progress.html | 137 ++ gtk+-mingw/share/doc/freeglut-2.8.0/structure.html | 80 + 8 files changed, 2479 insertions(+) create mode 100644 gtk+-mingw/share/doc/freeglut-2.8.0/download.html create mode 100644 gtk+-mingw/share/doc/freeglut-2.8.0/freeglut.html create mode 100644 gtk+-mingw/share/doc/freeglut-2.8.0/freeglut_logo.png create mode 100644 gtk+-mingw/share/doc/freeglut-2.8.0/freeglut_user_interface.html create mode 100644 gtk+-mingw/share/doc/freeglut-2.8.0/index.html create mode 100644 gtk+-mingw/share/doc/freeglut-2.8.0/ogl_sm.png create mode 100644 gtk+-mingw/share/doc/freeglut-2.8.0/progress.html create mode 100644 gtk+-mingw/share/doc/freeglut-2.8.0/structure.html (limited to 'gtk+-mingw/share/doc/freeglut-2.8.0') diff --git a/gtk+-mingw/share/doc/freeglut-2.8.0/download.html b/gtk+-mingw/share/doc/freeglut-2.8.0/download.html new file mode 100644 index 0000000..b9baab2 --- /dev/null +++ b/gtk+-mingw/share/doc/freeglut-2.8.0/download.html @@ -0,0 +1,42 @@ + + + + + + + + + + The freeglut project + + + +
The freeglut logo
+ +
+I upload it, you download it. That's the ying-yang nature of the Buddha. +
+ +

+ +

January the 16th, 2000 +

Here is a list of files you can download: +

+ +

+ +
+ diff --git a/gtk+-mingw/share/doc/freeglut-2.8.0/freeglut.html b/gtk+-mingw/share/doc/freeglut-2.8.0/freeglut.html new file mode 100644 index 0000000..7357dea --- /dev/null +++ b/gtk+-mingw/share/doc/freeglut-2.8.0/freeglut.html @@ -0,0 +1,163 @@ + + + + + + + + + + The freeglut project + + + +
The freeglut logo
+ +
+I am best at what I do worst and for this gift I feel blessed... +
+ +

+ +

January the 2nd, 2000 + +

The alpha version has been released yesterday. Today I have been busy with moving +the project site to the SourceForge. 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. + +

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. + +

January the 4th, 2000 + +

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 structure page). + +

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? + +

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 here. + +

January the 6th, 2000 + +

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. + +

The enumerations for GLUT_KEY_UP and GLUT_KEY_RIGHT were accidentally swapped. +They should be OK now. Hope the rest is OK :) + +

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. + +

The structure plans page has been updated. The numerous +feature hints from opengl-gamedev-l readers have been added. + +

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. + +

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. :) + +

January the 8th, 2000 + +

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? + +

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 :) + +

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. + +

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? + +

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. + +

January the 9th, 2000 + +

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... + +

After it starts working, I'll have to clean up the code a bit, I guess... + +

January the 10th, 2000 + +

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 :) + +

January the 16th, 2000 + +

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. + +

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). + +

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? + +

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). + +

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? + +

Back to the main page + +

+ 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 new file mode 100644 index 0000000..36bf1b5 Binary files /dev/null and b/gtk+-mingw/share/doc/freeglut-2.8.0/freeglut_logo.png differ 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 new file mode 100644 index 0000000..20d1e42 --- /dev/null +++ b/gtk+-mingw/share/doc/freeglut-2.8.0/freeglut_user_interface.html @@ -0,0 +1,1956 @@ + + + + + + + + + + FREEGLUT Application Program Interface + + + +
+
+

The Open-Source

+
+
+

OpenGL Utility Toolkit

+
+
+

(freeglut 2.0.0)

+
+
+

Application Programming Interface

+
+
+ +
+

Version 4.0

+
+ +
+

The freeglut Programming Consortium

+
+ +
+

July, 2003

+
+ +


+ 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.
+ 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.
+  

+ +

1.0  + Contents

+ 1.0  Contents + +

2.0  Introduction +

+ +

3.0  Background +

+ +
3.1  Design Philosophy
+ 3.2  Conventions
+ 3.3  Terminology
+ 3.4  Differences from GLUT 3.7
+ +


+ 4.0  Initialization Functions +

+ +
4.1  glutInit
+ 4.2  glutInitWindowPosition, glutInitWindowSize
+ 4.3  glutInitDisplayMode
+ 4.4  glutInitDisplayString
+ +


+ 5.0  Event Processing Functions +

+ +
5.1  glutMainLoop
+ 5.2  glutMainLoopEvent
+ 5.3  glutLeaveMainLoop
+ +


+ 6.0  Window Functions +

+ +
6.1  glutCreateWindow
+ 6.2  glutCreateSubwindow
+ 6.3  glutDestroyWindow
+ 6.4  glutSetWindow, glutGetWindow
+ 6.5  glutSetWindowTitle, glutSetIconTitle
+ 6.6  glutReshapeWindow
+ 6.7  glutPositionWindow
+ 6.8  glutShowWindow, glutHideWindow, glutIconifyWindow
+ 6.9  glutPushWindow, glutPopWindow
+ 6.10  glutFullScreen
+ +


+ 7.0  Display Functions +

+ +
7.1  glutPostRedisplay
+ 7.2  glutPostWindowRedisplay
+ 7.3  glutSwapBuffers
+ +


+ 8.0  Mouse Cursor Functions +

+ +
8.1  glutSetCursor
+ 8.2  glutWarpPointer
+ +


+ 9.0  Overlay Functions +

+ +
9.1  glutEstablishOverlay
+ 9.2  glutRemoveOverlay
+ 9.3  glutUseLayer
+ 9.4  glutPostOverlayRedisplay
+ 9.5  glutPostWindowOverlayRedisplay
+ 9.6  glutShowOverlay, glutHideOverlay
+ +


+ 10.0  Menu Functions +

+ +
10.1  glutCreateMenu
+ 10.2  glutDestroyMenu
+ 10.3  glutGetMenu, glutSetMenu
+ 10.4  glutAddMenuEntry
+ 10.5  glutAddSubMenu
+ 10.6  glutChangeToMenuEntry
+ 10.7  glutChangeToSubMenu
+ 10.8  glutRemoveMenuItem
+ 10.9  glutAttachMenu, glutDetachMenu
+ +


+ 11.0  Global Callback Registration Functions +

+ +
11.1  glutTimerFunc
+ 11.2  glutIdleFunc
+ +


+ 12.0  Window-Specific Callback Registration + Functions +

+ +
12.1  glutDisplayFunc
+ 12.2  glutOverlayDisplayFunc
+ 12.3  glutReshapeFunc
+ 12.4  glutCloseFunc
+ 12.5  glutKeyboardFunc
+ 12.6  glutSpecialFunc
+ 12.7  glutKeyboardUpFunc
+ 12.8  glutSpecialUpFunc
+ 12.9  glutMouseFunc
+ 12.10  glutMotionFunc, glutPassiveMotionFunc
+ 12.11  glutVisibilityFunc
+ 12.12  glutEntryFunc
+ 12.13  glutJoystickFunc
+ 12.14  glutSpaceballMotionFunc
+ 12.15  glutSpaceballRotateFunc
+ 12.16  glutSpaceballButtonFunc
+ 12.17  glutButtonBoxFunc
+ 12.18  glutDialsFunc
+ 12.19  glutTabletMotionFunc
+ 12.20  glutTabletButtonFunc +

12.21  glutMenuStatusFunc
+ 12.22  glutWindowStatusFunc

+
+ +


+ 13.0  State Setting and Retrieval Functions +

+ +
13.1  glutSetOption
+ 13.2  glutGet
+ 13.3  glutDeviceGet
+ 13.4  glutGetModifiers
+ 13.5  glutLayerGet
+ 13.6  glutExtensionSupported
+13.7  glutGetProcAddress
+
+ +


+ 14.0  Font Rendering Functions +

+ +
14.1  glutBitmapCharacter
+ 14.2  glutBitmapString
+ 14.3  glutBitmapWidth
+ 14.4  glutBitmapLength
+ 14.5  glutBitmapHeight
+ 14.6  glutStrokeCharacter
+ 14.7  glutStrokeString
+ 14.8  glutStrokeWidth
+ 14.9  glutStrokeLength
+ 14.10  glutStrokeHeight
+ +


+ 15.0  Geometric Object Rendering Functions +

+ +
15.1  glutWireSphere, glutSolidSphere +
+ 15.2  glutWireTorus, glutSolidTorus
+ 15.3  glutWireCone, glutSolidCone
+ 15.4  glutWireCube, glutSolidCube
+ 15.5  glutWireTetrahedron, glutSolidTetrahedron
+ 15.6  glutWireOctahedron, glutSolidOctahedron
+ 15.7  glutWireDodecahedron, glutSolidDodecahedron
+ 15.8  glutWireIcosahedron, glutSolidIcosahedron
+ 15.9  glutWireRhombicDodecahedron, glutSolidRhombicDodecahedron
+ 15.10  glutWireTeapot, glutSolidTeapot
+ +


+ 16.0  Game Mode Functions +

+ +
16.1  glutGameModeString
+ 16.2  glutEnterGameMode, glutLeaveGameMode
+ 16.3  glutGameModeGet
+ +


+ 17.0  Video Resize Functions +

+ +
17.1  glutVideoResizeGet
+ 17.2  glutSetupVideoResizing, glutStopVideoResizing
+ 17.3  glutVideoResize
+ 17.4  glutVideoPan
+ +


+ 18.0  Color Map Functions +

+ +
18.1  glutSetColor, glutGetColor +
+ 18.2  glutCopyColormap
+ +


+ 19.0  Miscellaneous Functions +

+ +
19.1  glutIgnoreKeyRepeat, +glutSetKeyRepeat
+ 19.2  glutForceJoystickFunc
+ 19.3  glutReportErrors
+ +


+ 20.0  Usage Notes +

+ +

21.0  + Implementation Notes +

+ +

22.0  GLUT +State +

+ +

23.0  + "freeglut.h" Header File +

+ +

24.0  References +

+ +

25.0  Index +
+  
+  

+ +

2.0  + Introduction

+   +

3.0  + Background

+ 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. + +

    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. +

+ +

    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 freeglut library.  This documentation +specifies the application program interface to the freeglut library. +

+ +

3.1  Design Philosophy

+ +

3.2  Conventions

+ +

3.3  Terminology

+ +

3.4  Differences from GLUT 3.7

+ Since the freeglut 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 +freeglut function behaviours.  The important ones are summarized +here. +

3.4.1  glutMainLoop Behaviour

+ One of the commonest complaints about the GLUT library was that once an +application called "glutMainLoop", 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, "glutMainLoopEvent", has been added +to allow this functionality.  Another function, "glutLeaveMainLoop +", has also been added to allow the application to tell freeglut to clean +up and close down. +

3.4.2  Action on Window Closure

+ 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, +" GLUT_ACTION_ON_WINDOW_CLOSE", to specify whether execution should +continue, whether GLUT should return control to the main program, or whether +GLUT should simply exit (the default). + +

3.4.3  Changes to Callbacks
+

+ 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 freeglut development team.
+ +

3.4.4  String Rendering
+

+ 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.
+ +

3.4.5  Geometry Rendering
+

+ Functions have been added to render a wireframe and a solid rhombic +dodecahedron, a cylinder, and a Sierpinski sponge. +

3.4.5  Extension Function Queries

+ glutGetProcAddress is a wrapper for the glXGetProcAddressARB and wglGetProcAddress +functions. +

4.0  + Initialization Functions

+ +

4.1  glutInit

+ +

4.2  glutInitWindowPosition, glutInitWindowSize

+ The "glutInitWindowPosition " and "glutInitWindowSize +" functions specify a desired position and size for windows that freeglut + will create in the future. +

Usage

+ +

void glutInitWindowPosition ( int +x, int y ) ;
+ void glutInitWindowSize ( int width, +int height ) ;

+ +

Description

+ +

The "glutInitWindowPosition + " and "glutInitWindowSize" functions specify a desired position +and size for windows that freeglut 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.  Freeglut + does not promise to follow these specifications in creating its windows, +it certainly makes an attempt to.

+ +

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. +

+ +

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 freeglut + 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. +

+ +

Changes From GLUT

+ +

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 "glutReshapeWindow + " and make a window narrower again.

+ +

4.3  glutInitDisplayMode

+ +

4.4  glutInitDisplayString

+ +

5.0  + Event Processing Functions

+ After an application has finished initializing its windows and menus, it + enters an event loop.  Within this loop, freeglut polls the +data entry devices (keyboard, mouse, etc.) and calls the application's appropriate +callbacks. +

In GLUT, control never returned from +the event loop (as invoked by the "glutMainLoop" 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.  Freeglut allows the application +programmer to specify more direct control over the event loop by means of +two new functions.  The first, "glutMainLoopEvent", 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, " +glutLeaveMainLoop", causes the event loop to exit nicely; this is preferable +to the application's calling "exit" from within a GLUT callback. +

+ +

5.1  glutMainLoop

+ The "glutMainLoop" function enters the event loop. + +

Usage

+ +

void glutMainLoop ( void ) ; +

+ +

Description

+ +

The  "glutMainLoop" 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.

+ +

Changes From GLUT

+ +

In GLUT, there was absolutely no way +for the application programmer to have control return from the "glutMainLoop + " function to the calling function.  Freeglut allows the programmer +to force this by setting the "GLUT_ACTION_ON_WINDOW_CLOSE" option +and invoking the "glutLeaveMainLoop" function from one of the callbacks.  + Stopping the program this way is preferable to simply calling "exit + " from within a callback because this allows freeglut 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.)

+ +

5.2  glutMainLoopEvent

+ The "glutMainLoopEvent" function processes a single iteration +in the freeglut event loop. +

Usage

+ +

void glutMainLoopEvent ( void ) ; +

+ +

Description

+ +

The  "glutMainLoopEvent + " function causes freeglut 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 freeglut windowing system.

+ +

Changes From GLUT

+ +

GLUT does not include this function. +

+ +

5.3  glutLeaveMainLoop

+ The "glutLeaveMainLoop" function causes freeglut to stop + its event loop. +

Usage

+ +

void glutLeaveMainLoop ( void ) ; +

+ +

Description

+ +

The  "glutLeaveMainLoop + " function causes freeglut to stop the event loop.  If the +" GLUT_ACTION_ON_WINDOW_CLOSE" option has been set to "GLUT_ACTION_CONTINUE_EXECUTION + ", control will return to the function which called "glutMainLoop + "; otherwise the application will exit.

+ +

If the application has two nested calls +to "glutMainLoop" and calls "glutLeaveMainLoop", the behaviour +of freeglut 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 freeglut Programming +Consortium and ask for the code to be fixed.

+ +

Changes From GLUT

+ +

GLUT does not include this function. +

+ +

6.0  + Window Functions

+ +

6.1  glutCreateWindow

+ +

6.2  glutCreateSubwindow

+ +

6.3  glutDestroyWindow

+ +

6.4  glutSetWindow, glutGetWindow

+ +

6.5  glutSetWindowTitle, glutSetIconTitle

+ +

6.6  glutReshapeWindow

+ +

6.7  glutPositionWindow

+ +

6.8  glutShowWindow, glutHideWindow, +glutIconifyWindow

+ +

6.9  glutPushWindow, glutPopWindow

+ +

6.10  glutFullScreen

+ +

7.0  + Display Functions

+ +

7.1  glutPostRedisplay

+ +

7.2  glutPostWindowRedisplay

+ +

7.3  glutSwapBuffers

+ +

8.0  + Mouse Cursor Functions

+ +

8.1  glutSetCursor

+ +

8.2  glutWarpPointer

+ +

9.0  + Overlay Functions

+ Freeglut does not allow overlays, although it does "answer the mail" + with function stubs so that GLUT-based programs can compile and link against + freeglut without modification.  +If the reader needs overlays, he should contact the freeglut Programming +Consortium and ask for them to be implemented.  He should also be prepared +to assist in the implementation. +

9.1  glutEstablishOverlay

+ The "glutEstablishOverlay" function is not implemented in freeglut + . +

Usage

+ +

void glutEstablishOverlay ( void +) ;

+ +

Description

+ +

The "glutEstablishOverlay" function +is not implemented in freeglut.

+ +

Changes From GLUT

+ +

GLUT implements this function.

+ +

9.2  glutRemoveOverlay

+ The "glutRemoveOverlay" function is not implemented in freeglut + . +

Usage

+ +

void glutRemoveOverlay ( void ) ; +

+ +

Description

+ +

The "glutRemoveOverlay" function +is not implemented in freeglut.

+ +

Changes From GLUT

+ +

GLUT implements this function.

+ +

9.3  glutUseLayer

+ The "glutUseLayer" function is not implemented in freeglut + . +

Usage

+ +

void glutUseLayer (  GLenum +layer ) ;

+ +

Description

+ +

The "glutUseLayer" function +is not implemented in freeglut.

+ +

Changes From GLUT

+ +

GLUT implements this function.

+ +

9.4  glutPostOverlayRedisplay

+ The "glutPostOverlayRedisplay " function is not implemented in + freeglut. + +

Usage

+ +

void glutPostOverlayRedisplay ( void +) ;

+ +

Description

+ +

The "glutPostOverlayRedisplay + " function is not implemented in freeglut.

+ +

Changes From GLUT

+ +

GLUT implements this function.

+ +

9.5  glutPostWindowOverlayRedisplay

+ The "glutPostWindowOverlayRedisplay " function is not implemented + in freeglut. +

Usage

+ +

void glutPostWindowOverlayRedisplay +( int window ) ;

+ +

Description

+ +

The "glutPostWindowOverlayRedisplay + " function is not implemented in freeglut.

+ +

Changes From GLUT

+ +

GLUT implements this function.

+ +

9.6  glutShowOverlay, glutHideOverlay

+ The "glutShowOverlay" and "glutHideOverlay" functions +are not implemented in freeglut . + +

Usage

+ +

void glutShowOverlay( void ) ; +
+ void glutHideOverlay( void ) ; +

+ +

Description

+ +

The "glutShowOverlay" and " +glutHideOverlay" functions are not implemented in freeglut . +

+ +

Changes From GLUT

+ +

GLUT implements these functions.

+ +

10.0  + Menu Functions

+ +

10.1  glutCreateMenu

+ +

10.2  glutDestroyMenu

+ +

10.3  glutGetMenu, glutSetMenu

+ +

10.4  glutAddMenuEntry

+ +

10.5  glutAddSubMenu

+ +

10.6  glutChangeToMenuEntry

+ +

10.7  glutChangeToSubMenu

+ +

10.8  glutRemoveMenuItem

+ +

10.9  glutAttachMenu, glutDetachMenu

+ +

11.0  + Global Callback Registration Functions

+ +

11.1  glutTimerFunc

+ +

11.2  glutIdleFunc

+ The "glutIdleFunc" function sets the global idle callback. +Freeglut calls the idle callback when there are no inputs from the user. + +

Usage

+ +

void glutIdleFunc ( void (*func) +( void ) ) ;

+ +

func    The new +global idle callback function

+ +

Description

+ +

The  "glutIdleFunc" function +specifies the function that freeglut 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 freeglut while no events are received.  The callback function +has no parameters and returns no value.  Freeglut does not change +the current window or the current menu before invoking the idle +callback; programs with multiple windows or menus must explicitly set the + current window and current menu + and not rely on its current setting.
+     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.
+     Calling "glutIdleFunc" with a NULL argument +disables the call to an idle callback.

+ +

Changes From GLUT

+ +

Application programmers should note that +if they have specified the "continue execution" action on window closure, + freeglut 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.

+ +

12.0  + Window-Specific Callback Registration Functions

+ +

12.1  glutDisplayFunc

+ +

12.2  glutOverlayDisplayFunc

+ +

12.3  glutReshapeFunc

+ +

12.4  glutCloseFunc

+ +

12.5  glutKeyboardFunc

+ +

12.6  glutSpecialFunc

+ The "glutSpecialFunc" function sets the window's special key press + callback. Freeglut calls the special key press callback when the +user presses a special key. +

Usage

+ +

void glutSpecialFunc ( void (*func) +( int key, int x, int y ) ) ;

+ +

func    The window's +new special key press callback function
+ key     The +key whose press triggers the callback
+ x       + The x-coordinate of the mouse relative +to the window at the time the key is pressed
+ y       + The y-coordinate of the mouse relative +to the window at the time the key is pressed

+ +

Description

+ +

The  "glutSpecialFunc" +function specifies the function that freeglut 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.  Freeglut sets the current window 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.
+     Calling "glutSpecialUpFunc" with a NULL argument +disables the call to the window's special key press callback.

+ +

    The "key +" argument may take one of the following defined constant values:

+ + + Changes From GLUT +

None.

+ +

12.7  glutKeyboardUpFunc

+ The "glutKeyboardUpFunc" function sets the window's key release + callback. Freeglut calls the key release callback when the user releases +a key. +

Usage

+ +

void glutKeyboardUpFunc ( void (*func) +( unsigned char key, int x, int y ) ) ;

+ +

func    The window's +new key release callback function
+ key     The +key whose release triggers the callback
+ x       + The x-coordinate of the mouse relative +to the window at the time the key is released
+ y       + The y-coordinate of the mouse relative +to the window at the time the key is released

+ +

Description

+ +

The  "glutKeyboardUpFunc +" function specifies the function that freeglut 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.  + Freeglut sets the current window + to the window which is active when the callback is invoked.
+     While freeglut 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 freeglut, such as "8" when the +user is pressing the Shift key.  Freeglut 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 "key".
+     Calling "glutKeyboardUpFunc" with a NULL argument +disables the call to the window's key release callback.

+ +

Changes From GLUT

+ +

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 + freeglut Programming Consortium to +have them fixed.

+ +

12.8  glutSpecialUpFunc

+ The "glutSpecialUpFunc" function sets the window's special key +release callback. Freeglut calls the special key release callback +when the user releases a special key. +

Usage

+ +

void glutSpecialUpFunc ( void (*func) +( int key, int x, int y ) ) ;

+ +

func    The window's +new special key release callback function
+ key     The +key whose release triggers the callback
+ x       + The x-coordinate of the mouse relative +to the window at the time the key is released
+ y       + The y-coordinate of the mouse relative +to the window at the time the key is released

+ +

Description

+ +

The  "glutSpecialUpFunc +" function specifies the function that freeglut 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.  Freeglut sets the current window 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.
+     Calling "glutSpecialUpFunc" with a NULL argument +disables the call to the window's special key release callback.

+ +

    The "key +" argument may take one of the following defined constant values:

+ + + Changes From GLUT +

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 + freeglut Programming Consortium to +have them fixed.

+ +

12.9  glutMouseFunc

+ +

12.10  glutMotionFunc, glutPassiveMotionFunc

+ +

12.11  glutVisibilityFunc

+ +

12.12  glutEntryFunc

+ +

12.13  glutJoystickFunc

+ +

12.14  glutSpaceballMotionFunc

+ The "glutSpaceballMotionFunc" function is not implemented in + freeglut, although the library does +"answer the mail" to the extent that a call to the function will not produce +an error.. +

Usage

+ +

void glutSpaceballMotionFunc ( void +(* callback)( int x, int y, int z ) ) ;

+ +

Description

+ +

The "glutSpaceballMotionFunc + " function is not implemented in freeglut.

+ +

Changes From GLUT

+ +

GLUT implements this function.

+ +

12.15  glutSpaceballRotateFunc

+ The "glutSpaceballRotateFunc" function is not implemented in + freeglut, although the library does +"answer the mail" to the extent that a call to the function will not produce +an error.. +

Usage

+ +

void glutSpaceballRotateFunc ( void +(* callback)( int x, int y, int z ) ) ;

+ +

Description

+ +

The "glutSpaceballRotateFunc + " function is not implemented in freeglut.

+ +

Changes From GLUT

+ +

GLUT implements this function.

+ +

12.16  glutSpaceballButtonFunc

+ The "glutSpaceballButtonFunc" function is not implemented in + freeglut, although the library does +"answer the mail" to the extent that a call to the function will not produce +an error.. +

Usage

+ +

void glutSpaceballButtonFunc ( void +(* callback)( int button, int updown ) ) ;

+ +

Description

+ +

The "glutSpaceballButtonFunc + " function is not implemented in freeglut.

+ +

Changes From GLUT

+ +

GLUT implements this function.

+ +

12.17  glutButtonBoxFunc

+ The "glutSpaceballButtonBoxFunc" function is not implemented +in freeglut, although the library does "answer the mail" to the extent +that a call to the function will not produce an error.. + +

Usage

+ +

void glutSpaceballButtonBoxFunc ( +void (* callback)( int button, int updown ) ) ;

+ +

Description

+ +

The "glutSpaceballButtonBoxFunc + " function is not implemented in freeglut.

+ +

Changes From GLUT

+ +

GLUT implements this function.

+ +

12.18  glutDialsFunc

+ The "glutDialsFunc" function is not implemented in freeglut + , although the library does "answer the mail" to the extent that a call +to the function will not produce an error.. + +

Usage

+ +

void glutDialsFunc ( void (* callback)( +int dial, int value ) ) ;

+ +

Description

+ +

The "glutDialsFunc" function +is not implemented in freeglut.

+ +

Changes From GLUT

+ +

GLUT implements this function.

+ +

12.19  glutTabletMotionFunc

+ The "glutTabletMotionFunc" function is not implemented in + freeglut, although the library does "answer the mail" to the extent +that a call to the function will not produce an error.. + +

Usage

+ +

void glutTabletMotionFunc ( void +(* callback)( int x, int y ) ) ;

+ +

Description

+ +

The "glutTabletMotionFunc" function +is not implemented in freeglut.

+ +

Changes From GLUT

+ +

GLUT implements this function.

+ +

12.20  glutTabletButtonFunc

+ The "glutTabletButtonFunc" function is not implemented in + freeglut, although the library does "answer the mail" to the extent +that a call to the function will not produce an error.. + +

Usage

+ +

void glutTabletButtonFunc ( void +(* callback)( int button, int updown, int x, int y ) ) ;

+ +

Description

+ +

The "glutTabletButtonFunc" function +is not implemented in freeglut.

+ +

Changes From GLUT

+ +

GLUT implements this function.

+ +

12.21  glutMenuStatusFunc

+ +

12.22  glutWindowStatusFunc

+ +

13.0  + State Setting and Retrieval Functions

+ +

13.1  glutSetOption

+ +

13.2  glutGet

+ + +

+The following state variables may be queried with "glutGet". +The returned value is an integer. +

+ +

+These queries are with respect to the current window: +

+ + + +

+These queries do not depend on the current window. +

+ + + + +

13.3  glutDeviceGet

+ +

13.4  glutGetModifiers

+ +

13.5  glutLayerGet

+ +

13.6  glutExtensionSupported

+ +

13.7  glutGetProcAddress

+

glutGetProcAddress returns +a pointer to a named GL or freeglut function.

+

Usage

+

void *glutGetProcAddress ( const +char *procName ) ;

+

procName        + Name of an OpenGL or GLUT function. +

+

Description

+

glutGetProcAddress 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.

+

Both OpenGL functions and freeglut +functions can be queried with this function.

+

Changes From GLUT

+ +

GLUT does not include this function. +

+ +

14.0  + Font Rendering Functions

+ Freeglut supports two types of font rendering:  bitmap fonts, + which are rendered using the "glBitmap" 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 "glRasterPos* + " functions while stroke font characters use the OpenGL transformations +to position characters. +

    It should be noted +that freeglut fonts are similar but not identical to GLUT fonts.  +At the moment, freeglut fonts do not support the "`" (backquote) and +"|" (vertical line) characters; in their place it renders asterisks.

+ +

    Freeglut supports +the following bitmap fonts:

+ + + Freeglut calls "glRasterPos4v" 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. + +

    Freeglut supports +the following stroke fonts:

+ + + Freeglut does not use any display lists in its rendering of stroke + fonts.  It calls "glTranslatef" to advance the cursor by the +width of a character and to render carriage returns when appropriate. + +

14.1  glutBitmapCharacter

+ The "glutBitmapCharacter" function renders a single bitmapped +character in the current window using the specified font. + +

Usage

+ +

void glutBitmapCharacter ( void *font, +int character ) ;

+ +

font        + The bitmapped font to use in rendering +the character
+ character   The ASCII +code of the character to be rendered

+ +

Description

+ +

The  "glutBitmapCharacter + " function renders the given character in the specified bitmap font.  + Freeglut automatically sets the necessary +pixel unpack storage modes and restores the existing modes when it has finished.  +Before the first call to "glutBitMapCharacter " the application +program should call "glRasterPos*" to set the position of the character +in the window.  The "glutBitmapCharacter " function advances +the cursor position as part of its call to "glBitmap " and so the +application does not need to call "glRasterPos*" again for successive +characters on the same line.

+ +

Changes From GLUT

+ +

Nonexistent characters are rendered as +asterisks.  The rendering position in freeglut is apparently off +from GLUT's position by a few pixels vertically and one or two pixels horizontally. +

+ +

14.2  glutBitmapString

+ The "glutBitmapString" function renders a string of bitmapped +characters in the current window using the specified font. + +

Usage

+ +

void glutBitmapString ( void *font, +char *string ) ;

+ +

font      + The bitmapped font to use in rendering +the character string
+ string    String +of characters to be rendered

+ +

Description

+ +

The  "glutBitmapString + " function renders the given character string in the specified bitmap font.  + Freeglut automatically sets the necessary +pixel unpack storage modes and restores the existing modes when it has finished.  +Before calling "glutBitMapString" the application program should +call "glRasterPos*" to set the position of the string in the window.  +The "glutBitmapString" function handles carriage returns.  +Nonexistent characters are rendered as asterisks.

+ +

Changes From GLUT

+ +

GLUT does not include this function. +

+ +

14.3  glutBitmapWidth

+ The "glutBitmapWidth" function returns the width in pixels of +a single bitmapped character in the specified font. + +

Usage

+ +

int glutBitmapWidth ( void *font, +int character ) ;

+ +

font        + The bitmapped font to use in calculating +the character width
+ character   The ASCII +code of the character

+ +

Description

+ +

The  "glutBitmapWidth" +function returns the width of the given character in the specified bitmap +font.  Because the font is bitmapped, the width is an exact integer. +

+ +

Changes From GLUT

+ +

Nonexistent characters return the width +of an asterisk.

+ +

14.4  glutBitmapLength

+ The "glutBitmapLength" function returns the width in pixels of +a string of bitmapped characters in the specified font. + +

Usage

+ +

int glutBitmapLength ( void *font, +char *string ) ;

+ +

font    The bitmapped +font to use in calculating the character width
+ string  String of characters +whose width is to be calculated

+ +

Description

+ +

The  "glutBitmapLength + " 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 "glutBitmapWidth +".  The width of nonexistent characters is counted to be the width of +an asterisk.

+ +

    If the string contains +one or more carriage returns, freeglut calculates the widths in pixels +of the lines separately and returns the largest width.

+ +

Changes From GLUT

+ +

GLUT does not include this function. +

+ +

14.5  glutBitmapHeight

+ The "glutBitmapHeight" function returns the height in pixels of + the specified font. +

Usage

+ +

int glutBitmapHeight ( void *font +) ;

+ +

font        + The bitmapped font to use in calculating +the character height

+ +

Description

+ +

The  "glutBitmapHeight + " 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. +

+ +

Changes From GLUT

+ +

GLUT does not include this function. +

+ +

14.6  glutStrokeCharacter

+ The "glutStrokeCharacter" function renders a single stroke character + in the current window using the specified font. + +

Usage

+ +

void glutStrokeCharacter ( void *font, +int character ) ;

+ +

font        + The stroke font to use in rendering +the character
+ character   The ASCII +code of the character to be rendered

+ +

Description

+ +

The  "glutStrokeCharacter + " function renders the given character in the specified stroke font.  +Before the first call to "glutStrokeCharacter" the application program +should call the OpenGL transformation (positioning and scaling) functions +to set the position of the character in the window.  The "glutStrokeCharacter + " function advances the cursor position by a call to "glTranslatef + " and so the application does not need to call the OpenGL positioning functions + again for successive characters on the same line.

+ +

Changes From GLUT

+ +

Nonexistent characters are rendered as +asterisks.

+ +

14.7  glutStrokeString

+ The "glutStrokeString" function renders a string of characters +in the current window using the specified stroke font. + +

Usage

+ +

void glutStrokeString ( void *font, +char *string ) ;

+ +

font      + The stroke font to use in rendering +the character string
+ string    String +of characters to be rendered

+ +

Description

+ +

The  "glutStrokeString + " function renders the given character string in the specified stroke font.  +Before calling "glutStrokeString" the application program should +call the OpenGL transformation (positioning and scaling) functions to set +the position of the string in the window.  The "glutStrokeString + " function handles carriage returns.  Nonexistent characters are rendered +as asterisks.

+ +

Changes From GLUT

+ +

GLUT does not include this function. +

+ +

14.8  glutStrokeWidth

+ The "glutStrokeWidth" function returns the width in pixels of +a single character in the specified stroke font. + +

Usage

+ +

int glutStrokeWidth ( void *font, +int character ) ;

+ +

font        + The stroke font to use in calculating +the character width
+ character   The ASCII +code of the character

+ +

Description

+ +

The  "glutStrokeWidth" +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. +

+ +

Changes From GLUT

+ +

Nonexistent characters return the width +of an asterisk.

+ +

14.9  glutStrokeLength

+ The "glutStrokeLength" function returns the width in pixels of +a string of characters in the specified stroke font. + +

Usage

+ +

int glutStrokeLength ( void *font, +char *string ) ;

+ +

font    The stroke +font to use in calculating the character width
+ string  String of characters +whose width is to be calculated

+ +

Description

+ +

The  "glutStrokeLength + " 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.  Freeglut + 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 "glutStrokeWidth + ".  The width of nonexistent characters is counted to be the width +of an asterisk.

+ +

    If the string contains +one or more carriage returns, freeglut calculates the widths in pixels +of the lines separately and returns the largest width.

+ +

Changes From GLUT

+ +

GLUT does not include this function. +

+ +

14.10  glutStrokeHeight

+ The "glutStrokeHeight" function returns the height in pixels of + the specified font. +

Usage

+ +

GLfloat glutStrokeHeight ( void *font +) ;

+ +

font        + The stroke font to use in calculating +the character height

+ +

Description

+ +

The  "glutStrokeHeight + " function returns the height of a character in the specified stroke font.  +The application programmer should note that, unlike the other freeglut + font functions, this one returns a floating-point number.  The fonts +are designed such that all characters have (nominally) the same height.

+ +

Changes From GLUT

+ +

GLUT does not include this function. +

+ +

15.0  + Geometric Object Rendering Functions

+ Freeglut 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 aux toolkit described in the OpenGL Programmer's Guide + .  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. +

15.1  glutWireSphere, glutSolidSphere

+ The "glutWireSphere" and "glutSolidSphere" functions +draw a wireframe and solid sphere respectively. + +

Usage

+ +

void glutWireSphere ( GLdouble dRadius, +GLint slices, GLint stacks ) ;

+ +

void glutSolidSphere ( GLdouble dRadius, +GLint slices, GLint stacks ) ;

+ +

dRadius       + The desired radius of the sphere

+ +

slices        + The desired number of slices (divisions +in the longitudinal direction) in the sphere

+ +

stacks        + 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 stacks+1 +

+ +

Description

+ +

The "glutWireSphere" and " + glutSolidSphere" 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.

+ +

Changes From GLUT

+ +

None that we know of.

+ +

15.2  glutWireTorus, glutSolidTorus

+ The "glutWireTorus" and "glutSolidTorus" functions draw + a wireframe and solid torus (donut shape) respectively. + +

Usage

+ +

void glutWireTorus ( GLdouble dInnerRadius, +GLdouble dOuterRadius, GLint nSides, GLint nRings ) ;

+ +

void glutSolidTorus ( GLdouble dInnerRadius, +GLdouble dOuterRadius, GLint nSides, GLint nRings ) ;

+ +

dInnerRadius        + The desired inner radius of the torus, +from the origin to the circle defining the centers of the outer circles

+ +

dOuterRadius        + The desired outer radius of the torus, +from the center of the outer circle to the actual surface of the torus

+ +

nSides        + The desired number of segments in a +single outer circle of the torus

+ +

nRings        + The desired number of outer circles +around the origin of the torus

+ +

Description

+ +

The "glutWireTorus" and " + glutSolidTorus" 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.

+ +

Changes From GLUT

+ +

None that we know of.

+ +

15.3  glutWireCone, glutSolidCone

+ The "glutWireCone" and "glutSolidCone" functions draw +a wireframe and solid cone respectively. + +

Usage

+ +

void glutWireCone ( GLdouble base, +GLdouble height, GLint slices, GLint stacks ) ;

+ +

void glutSolidCone ( GLdouble base, +GLdouble height, GLint slices, GLint stacks ) ;

+ +

base          + The desired radius of the base of the +cone

+ +

height        + The desired height of the cone

+ +

slices        + The desired number of slices around +the base of the cone

+ +

stacks        + The desired number of segments between +the base and the tip of the cone (the number of points, including the tip, +is stacks + 1)

+ +

Description

+ +

The "glutWireCone" and " + glutSolidCone" 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.

+ +

Changes From GLUT

+ +

None that we know of.

+ +

15.4  glutWireCube, glutSolidCube

+ The "glutWireCube" and "glutSolidCube" functions draw +a wireframe and solid cube respectively. + +

Usage

+ +

void glutWireCube ( GLdouble dSize +) ;

+ +

void glutSolidCube ( GLdouble dSize +) ;

+ +

dSize         + The desired length of an edge of the +cube

+ +

Description

+ +

The "glutWireCube" and " + glutSolidCube" functions render a cube of the desired size, centered +at the origin.  Its faces are normal to the coordinate directions.

+ +

Changes From GLUT

+ +

None that we know of.

+ +

15.5  glutWireTetrahedron, glutSolidTetrahedron

+ The "glutWireTetrahedron" and "glutSolidTetrahedron" +functions draw a wireframe and solid tetrahedron (four-sided Platonic solid) +respectively. +

Usage

+ +

void glutWireTetrahedron ( void ) +;

+ +

void glutSolidTetrahedron ( void +) ;

+ +

Description

+ +

The "glutWireTetrahedron" and +"glutSolidTetrahedron" 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.

+ +

Changes From GLUT

+ +

None that we know of.

+ +

15.6  glutWireOctahedron, glutSolidOctahedron

+ The "glutWireOctahedron" and "glutSolidOctahedron" functions + draw a wireframe and solid octahedron (eight-sided Platonic solid) respectively. + +

Usage

+ +

void glutWireOctahedron ( void ) +;

+ +

void glutSolidOctahedron ( void ) +;

+ +

Description

+ +

The "glutWireOctahedron" and +"glutSolidOctahedron" 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.

+ +

Changes From GLUT

+ +

None that we know of.

+ +

15.7  glutWireDodecahedron, glutSolidDodecahedron

+ The "glutWireDodecahedron" and "glutSolidDodecahedron +" functions draw a wireframe and solid dodecahedron (twelve-sided Platonic +solid) respectively. +

Usage

+ +

void glutWireDodecahedron ( void +) ;

+ +

void glutSolidDodecahedron ( void +) ;

+ +

Description

+ +

The "glutWireDodecahedron" and +"glutSolidDodecahedron" 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. +

+ +

Changes From GLUT

+ +

None that we know of.

+ +

15.8  glutWireIcosahedron, glutSolidIcosahedron

+ The "glutWireIcosahedron" and "glutSolidIcosahedron" +functions draw a wireframe and solid icosahedron (twenty-sided Platonic solid) +respectively. +

Usage

+ +

void glutWireIcosahedron ( void ) +;

+ +

void glutSolidIcosahedron ( void +) ;

+ +

Description

+ +

The "glutWireIcosahedron" and +"glutSolidIcosahedron" 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.

+ +

Changes From GLUT

+ +

None that we know of.

+ +

15.7  glutWireRhombicDodecahedron, +glutSolidRhombicDodecahedron

+ The "glutWireRhombicDodecahedron" and "glutSolidRhombicDodecahedron + " functions draw a wireframe and solid rhombic dodecahedron (twelve-sided + semi-regular solid) respectively. +

Usage

+ +

void glutWireRhombicDodecahedron +( void ) ;

+ +

void glutSolidRhombicDodecahedron +( void ) ;

+ +

Description

+ +

The "glutWireRhombicDodecahedron + " and "glutSolidRhombicDodecahedron" 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, +1) and ( +sqrt(2)/2, + +sqrt(2)/2, 0).

+ +

Changes From GLUT

+ +

GLUT does not include these functions. +

+ +

15.10  glutWireTeapot, glutSolidTeapot

+ The "glutWireTeapot" and "glutSolidTeapot" functions +draw a wireframe and solid teapot respectively. + +

Usage

+ +

void glutWireTeapot ( GLdouble dSize +) ;

+ +

void glutSolidTeapot ( GLdouble dSize +) ;

+ +

dSize         + The desired size of the teapot

+ +

Description

+ +

The "glutWireTeapot" and " + glutSolidTeapot" functions render a teapot of the desired size, centered +at the origin.  This is the famous OpenGL teapot [add reference].

+ +

Changes From GLUT

+ +

None that we know of.

+ +

16.0  + Game Mode Functions

+ +

16.1  glutGameModeString

+ +

16.2  glutEnterGameMode, glutLeaveGameMode

+ +

16.3  glutGameModeGet

+ +

17.0  + Video Resize Functions

+ +

17.1  glutVideoResizeGet

+ +

17.2  glutSetupVideoResizing, +glutStopVideoResizing

+ +

17.3  glutVideoResize

+ +

17.4  glutVideoPan

+ +

18.0  + Color Map Functions

+ +

18.1  glutSetColor, glutGetColor

+ +

18.2  glutCopyColormap

+ +

19.0  + Miscellaneous Functions

+ +

19.1  glutIgnoreKeyRepeat, glutSetKeyRepeat

+ +

19.2  glutForceJoystickFunc

+ +

19.3  glutReportErrors

+ +

20.0  + Usage Notes

+ +

The following environment variables +are recognized by freeglut:

+ +

21.0  + Implementation Notes

+ +

22.0  +GLUT State

+ +

23.0  +"freeglut.h" Header File

+ + +

+Application programmers who are porting their GLUT programs to freeglut may continue +to include <GL/glut.h> in their programs. +Programs which use the freeglut-specific extensions to GLUT should include +<GL/freeglut.h>. One possible arrangement is as follows: +

+ +
+#ifdef FREEGLUT
+#include <GL/freeglut_ext.h>
+#else
+#include <GL/glut.h>
+#endif
+
+ +

+Compile-time freeglut version testing can be done as follows: +

+ +
+#ifdef FREEGLUT_VERSION_2_0
+  code specific to freeglut 2.0 or later here
+#endif
+
+ +

+In future releases, FREEGLUT_VERSION_2_1, FREEGLUT_VERSION_2_2, etc will +be defined. This scheme mimics OpenGL conventions. +

+ +

+The freeglut 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. +

+

+This may be used as follows: +

+ +
+if (glutGet(GLUT_VERSION) < 20001) {
+    printf("Sorry, you need freeglut version 2.0.1 or later to run this program.\n");
+    exit(1);
+}
+
+ + + +

24.0  +References

+ +

25.0  +Index

+  +

 
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  

+ + + diff --git a/gtk+-mingw/share/doc/freeglut-2.8.0/index.html b/gtk+-mingw/share/doc/freeglut-2.8.0/index.html new file mode 100644 index 0000000..d511a9b --- /dev/null +++ b/gtk+-mingw/share/doc/freeglut-2.8.0/index.html @@ -0,0 +1,101 @@ + + +The freeglut project + + + + + + + + +
+ +
The freeglut logo
+
The free OpenGL utility toolkit
+ +
+ +
+ +

+
Hosted at SourceForge
+
+ +
+ + + + 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 new file mode 100644 index 0000000..80baefc Binary files /dev/null and b/gtk+-mingw/share/doc/freeglut-2.8.0/ogl_sm.png differ diff --git a/gtk+-mingw/share/doc/freeglut-2.8.0/progress.html b/gtk+-mingw/share/doc/freeglut-2.8.0/progress.html new file mode 100644 index 0000000..8a84483 --- /dev/null +++ b/gtk+-mingw/share/doc/freeglut-2.8.0/progress.html @@ -0,0 +1,137 @@ + + + + + + + + + + The freeglut project + + + +
The freeglut logo
+
+I love reports. They are so full of brightness and hope... +
+ +

+ +

January the 16th, 2000 + +

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 :) + +

  • input devices
  • + +

    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. + +

    None of the bizarre input devices found in GLUT API is supported (and probably won't). + +

    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). + +

  • pull-down menus
  • + +

    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. + +

  • fonts
  • + +

    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. + +

    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. + +

    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. + +

    Added two new API calls: glutBitmapHeight() and glutStrokeHeight(), that return +a font's height. Hope this doesn't break the GLUT compatibility a lot. + +

  • mouse cursor
  • + +

    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. + +

  • indexed color mode
  • + +

    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?) + +

  • planes
  • + +

    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. + +

    Layers would be good for drawing the menus and mouse cursor, as they wouldn't force +the application redraw to update their state. + +

  • init display string
  • + +

    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... + +

  • game mode
  • + +

    Is the game mode string parsed correctly? + +

  • geometry
  • + +

    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. + +

  • obvious bugs
  • + +

      +
    1. +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.
    2. + +
    3. +GLX 1.3 spec states that glXChooseVisual() et consortes are deprecated. Should move to +glXFBConfig.
    4. + +
    5. +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...
    6. + +
    7. +I was told it is wrong to have the redisplay forced in the main loop. Is that right?
    8. + +

  • not so obvious bugs
  • + +

      +
    1. 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. + +

      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

    2. + +
+ +Back to the main page + +
+ diff --git a/gtk+-mingw/share/doc/freeglut-2.8.0/structure.html b/gtk+-mingw/share/doc/freeglut-2.8.0/structure.html new file mode 100644 index 0000000..a460567 --- /dev/null +++ b/gtk+-mingw/share/doc/freeglut-2.8.0/structure.html @@ -0,0 +1,80 @@ + + + + + + + + + + The freeglut project + + + +
The freeglut logo
+
+I've got a master plan (to take your API down)... +
+ +

+ +

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. + +

  • freeglut-common
  • + +

    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. + +

  • freeglut-1.3
  • + +

    The GLUT API 3 compatible library. This is what's can be found now in the alpha +release (apart from the bugs, naturally :D). + +

  • freeglut-2.0
  • + +

    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. +Suggestions are welcome.

+ +

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...
+ +

  • glutBitmapHeight() and glutStrokeHeight() -- I have added them to the +freeglut-1.3 API, they are already implemented and should work fine,
  • +
  • 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.?)
  • +
  • texture mapped fonts -- this is easy and could be added to freeglut-1.3, but +would require adding the...
  • +
  • glutHint() function to tell freeglut to: use bitmapped/texture mapped fonts, +draw the menus and mouse cursor using OpenGL/window system, and stuff...
  • +
  • glutMainLoop() termination and glutMainLoopStep() function, which should +perform a single check of pending events, so that one can have his own main loop,
  • +
  • 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,
  • +
  • glutModifierFunc() could be added, or glutGetModifierState() should be allowed +to be called anywhere from the client's code
  • + +

    We might also think about:
    + +

  • freeglut-2.0 modularity via plugins, so that only the features that one +needs get loaded (plugins are easily supported by GLib),
  • +
  • OpenGL state management functions,
  • +
  • audio support -- using OpenAL maybe?,
  • +
  • a real menu system, not only the popups
  • +
  • non-OpenGL but portable UI, something like Java Swing
  • +
  • window-closing confirmation box (this is related to the above)
  • + +

    Following ideas are bad for freeglut:
    + +

  • more accurate timers under Win32 -- this goes to the GLib development afaik
  • +
  • portable file I/O, portable threads, plugins/modules -- this is already +done in GLib
  • + +

    Back to the main page + +
    + -- cgit v1.2.3