OpenGLUT Documentation
Introduction | Documentation | Examples | Proposals | Authors | Copying | Todo | Bugs | Links

Todo List

The latest list is available at

New bug reports or suggestions should be directed to the bug or requested feature enhancement trackers at Sourceforge.

Global glutDestroyWindow (int windowID)
Clean this up.

Global glutFullScreen (void)
Shouldn't need to XFlush

Global glutHideWindow (void)
Shouldn't need this XFlush

Global glutIconifyWindow (void)
Shouldn't need this XFlush

Global glutInitDisplayString (const char *displayMode)
GLUT_BORDERLESS and GLUT_OFFSCREEN are not represented.

Not all features appear to be implemented. In particular, numeric parameters and comparator specifications are lacking. See GLUT 3.7 sources for example.

PyOpenGL glutInitDisplayString documentation.

Global glutPositionWindow (int x, int y)
Shouldn't need this XFlush()

Global glutReshapeWindow (int width, int height)
Add support for offscreen windows.

Global glutReshapeWindow (int width, int height)
Could delete/create/set-window-id for offscreen.

Global glutSetIconTitle (const char *title)
Shouldn't need this xflush

Global glutSetWindowTitle (const char *title)
Shouldn't need this XFlush

Global glutShowWindow (void)
Shouldn't need this XFlush

Global glutSwapBuffers (void)
How does this interact with overlays?

Consider making GLUT_FPS keep per-window stats in a multi-window program.

Global glutCloseFunc (void(*callback)(void))
There needs to be some work to rationalize the behavior when a window is closed. Presently, the handling is ad-hoc and sloppy.

Global glutDeviceGet (GLenum eWhat)
Keyboards assumed to exist.

Mouse assumed to exist on UNIX/X11.

Mice assumed to have three buttons on UNIX/X11.

Joystick query limited to one joystick

Consider moving to a table-based approach rather than a switch(), letting us move to modular functions.

Global glutGetModifiers (void)
Complains if not invoked by a client callback.

Does not differentiate between the left and right forms of the modifiers.

Global glutTabletButtonFunc (void(*callback)(int button, int state, int x, int y))
We might want to add support for this sooner or later. Although a tablet could also be generalized as a mouse. There are relatively cheap AipTek HyperPen tablets, and slightly less cheap Wacom tablets on many store shelves.

Global glutTabletMotionFunc (void(*callback)(int x, int y))
We might want to add support for this sooner or later. Although a tablet could also be generalized as a mouse. There are relatively cheap AipTek HyperPen tablets, and slightly less cheap Wacom tablets on many store shelves.

Global glutSolidSierpinskiSponge (int num_levels, const GLdouble offset[3], GLdouble scale)
Consider removing the offset parameter from the API (use a helper function).

Global glutSolidTetrahedron (void)
See todo-list on glutWireTetrahedron().

Global glutWireOctahedron (void)
It may be faster (and look better) to draw each edge once, setting the Normal at each edge. (I don't think that this matters all that much, but a lineloop was proposed for the wire Cube for speed.)

Global glutWireTetrahedron (void)
Merge r0 r1 r2 and r3 into one array.

Put the normals into the (or an) array.

Make the array static const, with file scope, and share with glutSolidTetrahedron().

Maybe consolidate with the SierpinskySponge?

Global glutStrokeHeight (void *fontID)
We have discussed adding a "font descender" query. We should go ahead and do it.

Global glutStrokeWidth (void *fontID, int character)
Determine if any glyphs are either wider than this function or if they render outside of the bounding box given by (0,-descent) by (width,height-descent).

Global glutAttachMenu (int button)
Assumes 3 mouse buttons. (Actually OPENGLUT_MAX_MENUS holds the assumed number of buttons.) Cannot bind to more buttons. Will not issue any warnings or errors if the user does not have enough buttons to reach your menu.

Global glutMenuDestroyFunc (void(*callback)(void))
What on Earth is rationale for this feature? Menus should only be destroyed when we ask them to be destroyed, or when their window is destroyed. In the former case, we already know that the menu is being destroyed because we requested it. In the latter case, it is easy for the client to track that if they care, via window-destruction callbacks.

Group gamemode
It behaves differently on different systems. E.g., on some X systems, changing the video mode is impossible. This has led some developers to use game mode as a ``grab the mouse'' mode, without intending a resolution change.

Replacing game mode with a better design was discussed at some length in early 2004.

There is no way for game mode to report a partial failure.

There is no way to guarantee cleanup if OpenGLUT crashes during game mode---or if the client crashes or directly exits, etc.

Some XFree86 releases, with some drivers, can fail to set the video mode properly, resulting in disasterous failure (an unusable display). This is presently somewhat headed off by a compile-time option, but a runtime option would be better, as there may be cases where the user is willing to put up with the risk for some---and only some---OpenGLUT applications. Since game mode applications are somewhat dim-witted about such user preferences, it seems, an OpenGLUT runtime control could be desirable.

Global glutEnterGameMode (void)

OpenGLUT may be unable to restore the original settings (this has been observed on WIN32).

Global glutGameModeGet (GLenum pname)


Global glutGameModeString (const char *string)

Global glutLeaveGameMode (void)

Global glutExtensionSupported (const char *extension)
Wouldn't this be simpler and clearer if we used strtok()?

Consider an ogWarning() if there is no current rendering context.

This is an ugly bit of code with 3 return statements, one of which is never reached.

Global glutLayerGet (GLenum eWhat)
Probably we should merge the below sections unless and until layer support is actually added.

Should be set when the window is damaged; should not be set just for glutPostRedisplay().

Global glutSetWindowStayOnTop (GLint enable)
Can a glutGet() be defined to tell us whether a window can be made to stay on top? Or whether a window has (successfully) been marked for staying on top?

Should walk the tree of menus and glutPopWindow() (or all windows that are of menu-window type?).

Investigate making a workalike variant using glutPopWindow() to mimic the feature where not directly supported.

OpenGLUT Development @ Sourceforge
Homepage | Summary | Files | CVS | Forums | Lists | Bugs | RFE

Generated on Sat Feb 5 01:47:28 2005 for OpenGLUT by doxygen
The OpenGLUT project is hosted by