Next: 1.5 Conventions Up: 1 Introduction Previous: 1.3 API Version 2

## 1.4 API Version 3

Further feedback lead to the development of GLUT API version 3. Additions to the GLUT API version 2 are:

- The `glutMenuStateFunc` has been deprecated in favor of the `glutMenuStatusFunc`.
- `glutFullScreen` requests full screen top-level windows.
- Three additional Helvetica bitmap fonts.
- Implementations should enforce not allowing any modifications to menus while menus are in use.
- `glutBitmapWidth` and `glutStrokeBitmap` return the widths of individual characters.
- `glutGetModifiers` called during a keyboard, mouse, or special callback returns the modifiers (Shift, Ctrl, Alt) held down when the mouse or keyboard event was generated.
- Access to per-window transparent overlays when overlay hardware is supported. The routines added are `glutEstablishOverlay`, `glutRemoveOverlay`, `glutShowOverlay`, `glutHideOverlay`, `glutUseOverlay`, `glutLayerGet`, and `glutPostOverlayRedisplay`.
- A new display mode called `GLUT_LUMINANCE` using OpenGL's RGBA color model, but that has no green or blue components. The red component is converted to an index and looked up in a writable colormap to determine displayed colors. See `glutInitDisplayMode`.

GLUT API version 3 should be largely compatible with version 2. Be aware that programs that used to (through some degree of fortuitous timing) modify menus while menus are in use will encounter fatal errors when doing so in version 3.

Another change in GLUT 3.0 that may require source code modification to pre-3.0 GLUT programs. GLUT 3.0 no longer lets a window be shown without a display callback registered. This change makes sure windows are not displayed on the screen without the GLUT application providing a way for them to be rendered. In conjunction with this change, `glutDisplayFunc` no longer allows `NULL` to deregister a display callback. While there is no longer a way to deregister a display callback, you can still change the change the display callback routine with subsequent calls to `glutDisplayFunc`.

The display mode mask parameter for `glutInitDisplayMode` and the milliseconds parameter for `glutTimerFunc` are now of type `unsigned int` (previously `unsigned long`).

Next: 1.5 Conventions Up: 1 Introduction Previous: 1.3 API Version 2