Copyright | (c) Sven Panne 2002-2018 |
---|---|
License | BSD3 |
Maintainer | Sven Panne <svenpanne@gmail.com> |
Stability | stable |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
In addition to the functionality offered by
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
fullScreen
. The GLUT clone freeglut
(see http://freeglut.sourceforge.net/) does not have this restriction.
Synopsis
- data GameModeCapability
- data GameModeCapabilityDescription = Where' GameModeCapability Relation Int
- gameModeCapabilities :: SettableStateVar [GameModeCapabilityDescription]
- enterGameMode :: MonadIO m => m (Window, Bool)
- leaveGameMode :: MonadIO m => m ()
- type BitsPerPlane = Int
- type RefreshRate = Int
- data GameModeInfo = GameModeInfo Size BitsPerPlane RefreshRate
- gameModeInfo :: GettableStateVar (Maybe GameModeInfo)
- gameModeActive :: GettableStateVar Bool
Documentation
data GameModeCapability Source #
Capabilities for gameModeCapabilities
GameModeWidth | Width of the screen resolution in pixels |
GameModeHeight | Height of the screen resolution in pixels |
GameModeBitsPerPlane | Color depth of the screen in bits |
GameModeRefreshRate | Refresh rate in Hertz |
GameModeNum | Match the Nth frame buffer configuration compatible with the given capabilities (numbering starts at 1) |
Instances
Eq GameModeCapability Source # | |
Defined in Graphics.UI.GLUT.GameMode (==) :: GameModeCapability -> GameModeCapability -> Bool # (/=) :: GameModeCapability -> GameModeCapability -> Bool # | |
Ord GameModeCapability Source # | |
Defined in Graphics.UI.GLUT.GameMode compare :: GameModeCapability -> GameModeCapability -> Ordering # (<) :: GameModeCapability -> GameModeCapability -> Bool # (<=) :: GameModeCapability -> GameModeCapability -> Bool # (>) :: GameModeCapability -> GameModeCapability -> Bool # (>=) :: GameModeCapability -> GameModeCapability -> Bool # max :: GameModeCapability -> GameModeCapability -> GameModeCapability # min :: GameModeCapability -> GameModeCapability -> GameModeCapability # | |
Show GameModeCapability Source # | |
Defined in Graphics.UI.GLUT.GameMode showsPrec :: Int -> GameModeCapability -> ShowS # show :: GameModeCapability -> String # showList :: [GameModeCapability] -> ShowS # |
data GameModeCapabilityDescription Source #
A single capability description for gameModeCapabilities
.
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
initialDisplayMode
or
initialDisplayCapabilities
will
determine which buffers are available, if double buffering is used or not,
etc.
enterGameMode :: MonadIO m => m (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 :: MonadIO m => m () Source #
Leave game mode, restoring the old display mode and destroying the game mode window.
type BitsPerPlane = Int Source #
The color depth of the screen, measured in bits (e.g. 8, 16, 24, 32, ...)
type RefreshRate = Int Source #
The refresh rate of the screen, measured in Hertz (e.g. 60, 75, 100, ...)
data GameModeInfo Source #
Instances
Eq GameModeInfo Source # | |
Defined in Graphics.UI.GLUT.GameMode (==) :: GameModeInfo -> GameModeInfo -> Bool # (/=) :: GameModeInfo -> GameModeInfo -> Bool # | |
Ord GameModeInfo Source # | |
Defined in Graphics.UI.GLUT.GameMode compare :: GameModeInfo -> GameModeInfo -> Ordering # (<) :: GameModeInfo -> GameModeInfo -> Bool # (<=) :: GameModeInfo -> GameModeInfo -> Bool # (>) :: GameModeInfo -> GameModeInfo -> Bool # (>=) :: GameModeInfo -> GameModeInfo -> Bool # max :: GameModeInfo -> GameModeInfo -> GameModeInfo # min :: GameModeInfo -> GameModeInfo -> GameModeInfo # | |
Show GameModeInfo Source # | |
Defined in Graphics.UI.GLUT.GameMode showsPrec :: Int -> GameModeInfo -> ShowS # show :: GameModeInfo -> String # showList :: [GameModeInfo] -> ShowS # |
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.