GLUT- A binding for the OpenGL Utility ToolkitSource codeContentsIndex

In addition to the functionality offered by Graphics.UI.GLUT.Window.fullScreen, GLUT offers an sub-API to change the screen resolution, color depth, and refresh rate of the display for a single full screen window. This mode of operation is called game mode, and is restricted in various ways: No pop-up menus are allowed for this full screen window, no other (sub-)windows can be created, and all other applications are hidden.

X Implementation Notes: Note that game mode is not fully supported in the original GLUT for X, it is essentially the same as using Graphics.UI.GLUT.Window.fullScreen. The GLUT clone freeglut (see does not have this restriction.

data GameModeCapability
= GameModeWidth
| GameModeHeight
| GameModeBitsPerPlane
| GameModeRefreshRate
| GameModeNum
data GameModeCapabilityDescription = Where' GameModeCapability Relation Int
gameModeCapabilities :: SettableStateVar [GameModeCapabilityDescription]
enterGameMode :: IO (Window, Bool)
leaveGameMode :: IO ()
type BitsPerPlane = Int
type RefreshRate = Int
data GameModeInfo = GameModeInfo Size BitsPerPlane RefreshRate
gameModeInfo :: GettableStateVar (Maybe GameModeInfo)
gameModeActive :: GettableStateVar Bool
data GameModeCapability Source
Capabilities for gameModeCapabilities
GameModeWidthWidth of the screen resolution in pixels
GameModeHeightHeight of the screen resolution in pixels
GameModeBitsPerPlaneColor depth of the screen in bits
GameModeRefreshRateRefresh rate in Hertz
GameModeNumMatch the Nth frame buffer configuration compatible with the given capabilities (numbering starts at 1)
show/hide Instances
data GameModeCapabilityDescription Source
A single capability description for gameModeCapabilities.
Where' GameModeCapability Relation Int
show/hide Instances
gameModeCapabilities :: SettableStateVar [GameModeCapabilityDescription]Source

Controls the game mode to be used when enterGameMode is called. It is described by a list of zero or more capability descriptions, which are translated into a set of criteria used to select the appropriate screen configuration. The criteria are matched in strict left to right order of precdence. That is, the first specified criterion (leftmost) takes precedence over the later criteria for non-exact criteria (IsGreaterThan, IsLessThan, etc.). Exact criteria (IsEqualTo, IsNotEqualTo) must match exactly so precedence is not relevant.

To determine which configuration will actually be tried by enterGameMode (if any), use gameModeInfo.

Note that even for game mode the current values of Graphics.UI.GLUT.Initialization.initialDisplayModeor Graphics.UI.GLUT.Initialization.initialDisplayCapabilities will determine which buffers are available, if double buffering is used or not, etc.

enterGameMode :: IO (Window, Bool)Source

Enter game mode, trying to change resolution, refresh rate, etc., as specified by the current value of gameModeCapabilities. An identifier for the game mode window and a flag, indicating if the display mode actually changed, are returned. The game mode window is made the current window.

Re-entering game mode is allowed, the previous game mode window gets destroyed by this, and a new one is created.

leaveGameMode :: IO ()Source
Leave game mode, restoring the old display mode and destroying the game mode window.
type BitsPerPlane = IntSource
The color depth of the screen, measured in bits (e.g. 8, 16, 24, 32, ...)
type RefreshRate = IntSource
The refresh rate of the screen, measured in Hertz (e.g. 60, 75, 100, ...)
data GameModeInfo Source
GameModeInfo Size BitsPerPlane RefreshRate
show/hide Instances
gameModeInfo :: GettableStateVar (Maybe GameModeInfo)Source
Return Just the mode which would be tried by the next call to enterGameMode. Returns Nothing if the mode requested by the current value of gameModeCapabilities is not possible, in which case enterGameMode would simply create a full screen window using the current mode.
gameModeActive :: GettableStateVar BoolSource
Contains True when the game mode is active, False otherwise.
Produced by Haddock version 2.4.2