sdl2-2.1.1: Both high- and low-level bindings to the SDL library (version 2.0.3).

Safe HaskellNone
LanguageHaskell2010

SDL.Video

Contents

Synopsis

Documentation

Window Management

createWindow :: MonadIO m => Text -> WindowConfig -> m Window Source

Create a window with the given title and configuration.

Throws SDLException on failure.

defaultWindow :: WindowConfig Source

Default configuration for windows. Use the record update syntax to override any of the defaults.

defaultWindow = WindowConfig
  { windowBorder       = True
  , windowHighDPI      = False
  , windowInputGrabbed = False
  , windowMode         = Windowed
  , windowOpenGL       = Nothing
  , windowPosition     = Wherever
  , windowResizable    = False
  , windowInitialSize  = V2 800 600
  }

data WindowConfig Source

Constructors

WindowConfig 

Fields

windowBorder :: Bool

Defaults to True.

windowHighDPI :: Bool

Defaults to False. Can not be changed after window creation.

windowInputGrabbed :: Bool

Defaults to False. Whether the mouse shall be confined to the window.

windowMode :: WindowMode

Defaults to Windowed.

windowOpenGL :: Maybe OpenGLConfig

Defaults to Nothing. Can not be changed after window creation.

windowPosition :: WindowPosition

Defaults to Wherever.

windowResizable :: Bool

Defaults to False. Whether the window can be resized by the user. It is still possible to programatically change the size with setWindowSize.

windowInitialSize :: V2 CInt

Defaults to (800, 600).

data WindowPosition Source

Constructors

Centered 
Wherever

Let the window mananger decide where it's best to place the window.

Absolute (Point V2 CInt) 

destroyWindow :: MonadIO m => Window -> m () Source

Destroy the given window. The Window handler may not be used afterwards.

Window Actions

hideWindow :: MonadIO m => Window -> m () Source

Hide a window.

See SDL_HideWindow for C documentation.

raiseWindow :: MonadIO m => Window -> m () Source

Raise the window above other windows and set the input focus.

See SDL_RaiseWindow for C documentation.

showWindow :: MonadIO m => Window -> m () Source

Show a window.

See SDL_ShowWindow for C documentation.

Window Attributes

windowMinimumSize :: Window -> StateVar (V2 CInt) Source

Get or set the minimum size of a window's client area.

This StateVar can be modified using $= and the current value retrieved with get.

See SDL_SetWindowMinimumSize and SDL_GetWindowMinimumSize for C documentation.

windowMaximumSize :: Window -> StateVar (V2 CInt) Source

Get or set the maximum size of a window's client area.

This StateVar can be modified using $= and the current value retrieved with get.

See SDL_SetWindowMaximumSize and SDL_GetWindowMaximumSize for C documentation.

windowSize :: Window -> StateVar (V2 CInt) Source

Get or set the size of a window's client area. Values beyond the maximum supported size are clamped.

This StateVar can be modified using $= and the current value retrieved with get.

See SDL_SetWindowSize and SDL_GetWindowSize for C documentation.

windowBordered :: Window -> StateVar Bool Source

Get or set if the window should have a border.

This StateVar can be modified using $= and the current value retrieved with get.

windowBrightness :: Window -> StateVar Float Source

Get or set the window's brightness, where 0.0 is completely dark and 1.0 is normal brightness.

Throws SDLException if the hardware does not support gamma correction, or if the system has run out of memory.

This StateVar can be modified using $= and the current value retrieved with get.

windowGammaRamp :: Window -> StateVar (V3 (Vector Word16)) Source

Gets or sets the gamma ramp for the display that owns a given window.

Note that the data for the gamma ramp - the V3 (Vector Word16) - must contain 256 element arrays. This triple is a set of translation vectors for each of the 16-bit red, green and blue channels.

This StateVar can be modified using $= and the current value retrieved with get.

Despite the name and signature, this method retrieves the gamma ramp of the entire display, not an individual window. A window is considered to be owned by the display that contains the window's center pixel.

windowGrab :: Window -> StateVar Bool Source

Get or set whether the mouse shall be confined to the window.

This StateVar can be modified using $= and the current value retrieved with get.

setWindowMode :: MonadIO m => Window -> WindowMode -> m () Source

Change between window modes.

Throws SDLException on failure.

getWindowAbsolutePosition :: MonadIO m => Window -> m (V2 CInt) Source

Get the position of the window.

setWindowPosition :: MonadIO m => Window -> WindowPosition -> m () Source

Set the position of the window.

windowTitle :: Window -> StateVar Text Source

Get or set the title of the window. If the window has no title, then an empty string is returned.

This StateVar can be modified using $= and the current value retrieved with get.

See SDL_SetWindowTitle and SDL_GetWindowTitle for C documentation.

windowData :: Window -> CString -> StateVar (Ptr ()) Source

Get or set the pointer to arbitrary user data associated with the given window and name.

This StateVar can be modified using $= and the current value retrieved with get.

See SDL_SetWindowTitle and SDL_GetWindowTitle for C documentation.

getWindowConfig :: MonadIO m => Window -> m WindowConfig Source

Retrieve the configuration of the given window.

Note that Nothing will be returned instead of potential OpenGL parameters used during the creation of the window.

getWindowPixelFormat :: MonadIO m => Window -> m PixelFormat Source

Get the pixel format that is used for the given window.

Renderer Management

Clipboard Handling

getClipboardText :: MonadIO m => m Text Source

Get the text from the clipboard.

Throws SDLException on failure.

hasClipboardText :: MonadIO m => m Bool Source

Checks if the clipboard exists, and has some text in it.

setClipboardText :: MonadIO m => Text -> m () Source

Replace the contents of the clipboard with the given text.

Throws SDLException on failure.

Display

getDisplays :: MonadIO m => m [Display] Source

Throws SDLException on failure.

data Display Source

Constructors

Display 

Fields

displayName :: String
 
displayBoundsPosition :: Point V2 CInt

Position of the desktop area represented by the display, with the primary display located at (0, 0).

displayBoundsSize :: V2 CInt

Size of the desktop area represented by the display.

displayModes :: [DisplayMode]
 

Screen Savers

Screen savers should be disabled when the sudden enablement of the monitor's power saving features would be inconvenient for when the user hasn't provided any input for some period of time, such as during video playback.

Screen savers are disabled by default upon the initialization of the video subsystem.

disableScreenSaver :: MonadIO m => m () Source

Prevent the screen from being blanked by a screen saver. If you disable the screensaver, it is automatically re-enabled when SDL quits.

See SDL_DisableScreenSaver for C documentation.

enableScreenSaver :: MonadIO m => m () Source

Allow the screen to be blanked by a screen saver.

See SDL_EnableScreenSaver for C documentation.

isScreenSaverEnabled :: MonadIO m => m Bool Source

Check whether screen savers are enabled .

See SDL_IsScreenSaverEnabled for C documentation.

Message Box

showSimpleMessageBox :: MonadIO m => Maybe Window -> MessageKind -> Text -> Text -> m () Source

Show a simple message box with the given title and a message. Consider writing your messages to stderr too.

Throws SDLException if there are no available video targets.