sdl2-2.5.2.0: Both high- and low-level bindings to the SDL library (version 2.0.6+).

Safe Haskell | None
Language | Haskell2010

SDL.Video

Contents

- Window Management
- Window Actions
- Window Attributes
- Renderer Management
- Clipboard Handling
- Display
- Screen Savers
- Message Box

Synopsis

- module SDL.Video.OpenGL
- module SDL.Video.Renderer
- data Window
- createWindow :: MonadIO m => Text -> WindowConfig -> m Window
- defaultWindow :: WindowConfig
- data WindowConfig = WindowConfig {
  - windowBorder :: Bool
  - windowHighDPI :: Bool
  - windowInputGrabbed :: Bool
  - windowMode :: WindowMode
  - windowGraphicsContext :: WindowGraphicsContext
  - windowPosition :: WindowPosition
  - windowResizable :: Bool
  - windowInitialSize :: V2 CInt
  - windowVisible :: Bool
  }
- data WindowGraphicsContext
  - = NoGraphicsContext
  - | OpenGLContext OpenGLConfig
  - | VulkanContext
- data WindowMode
  - = Fullscreen
  - | FullscreenDesktop
  - | Maximized
  - | Minimized
  - | Windowed
- data WindowPosition
  - = Centered
  - | Wherever
  - | Absolute (Point V2 CInt)
- destroyWindow :: MonadIO m => Window -> m ()
- hideWindow :: MonadIO m => Window -> m ()
- raiseWindow :: MonadIO m => Window -> m ()
- showWindow :: MonadIO m => Window -> m ()
- windowMinimumSize :: Window -> StateVar (V2 CInt)
- windowMaximumSize :: Window -> StateVar (V2 CInt)
- windowSize :: Window -> StateVar (V2 CInt)
- windowBordered :: Window -> StateVar Bool
- windowBrightness :: Window -> StateVar Float
- windowGammaRamp :: Window -> StateVar (V3 (Vector Word16))
- windowGrab :: Window -> StateVar Bool
- setWindowMode :: MonadIO m => Window -> WindowMode -> m ()
- getWindowAbsolutePosition :: MonadIO m => Window -> m (V2 CInt)
- setWindowPosition :: MonadIO m => Window -> WindowPosition -> m ()
- windowTitle :: Window -> StateVar Text
- windowData :: Window -> CString -> StateVar (Ptr ())
- getWindowConfig :: MonadIO m => Window -> m WindowConfig
- getWindowPixelFormat :: MonadIO m => Window -> m PixelFormat
- data PixelFormat
  - = Unknown
  - | Index1LSB
  - | Index1MSB
  - | Index4LSB
  - | Index4MSB
  - | Index8
  - | RGB332
  - | RGB444
  - | RGB555
  - | BGR555
  - | ARGB4444
  - | RGBA4444
  - | ABGR4444
  - | BGRA4444
  - | ARGB1555
  - | RGBA5551
  - | ABGR1555
  - | BGRA5551
  - | RGB565
  - | BGR565
  - | RGB24
  - | BGR24
  - | RGB888
  - | RGBX8888
  - | BGR888
  - | BGRX8888
  - | ARGB8888
  - | RGBA8888
  - | ABGR8888
  - | BGRA8888
  - | ARGB2101010
  - | YV12
  - | IYUV
  - | YUY2
  - | UYVY
  - | YVYU
- createRenderer :: MonadIO m => Window -> CInt -> RendererConfig -> m Renderer
- createSoftwareRenderer :: MonadIO m => Surface -> m Renderer
- destroyRenderer :: MonadIO m => Renderer -> m ()
- getClipboardText :: MonadIO m => m Text
- hasClipboardText :: MonadIO m => m Bool
- setClipboardText :: MonadIO m => Text -> m ()
- getDisplays :: MonadIO m => m [Display]
- data Display = Display {
  - displayName :: String
  - displayBoundsPosition :: Point V2 CInt
  - displayBoundsSize :: V2 CInt
  - displayModes :: [DisplayMode]
  }
- data DisplayMode = DisplayMode {
  - displayModeFormat :: PixelFormat
  - displayModeSize :: V2 CInt
  - displayModeRefreshRate :: CInt
  }
- data VideoDriver = VideoDriver {
  - videoDriverName :: String
  }
- screenSaverEnabled :: StateVar Bool
- showSimpleMessageBox :: MonadIO m => Maybe Window -> MessageKind -> Text -> Text -> m ()
- data MessageKind
  - = Error
  - | Warning
  - | Information

# Documentation

module SDL.Video.OpenGL

module SDL.Video.Renderer

# Window Management

data Window Source #

#### Instances

Instances details

Eq Window Source # |
Instance details Defined in SDL.Internal.Types Methods (==) :: Window -> Window -> Bool (/=) :: Window -> Window -> Bool
Data Window Source # |

Instance details

Defined in SDL.Internal.Types

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Window -> c Window

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Window

toConstr :: Window -> Constr

dataTypeOf :: Window -> DataType

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Window)

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Window)

gmapT :: (forall b. Data b => b -> b) -> Window -> Window

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Window -> r

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Window -> r

gmapQ :: (forall d. Data d => d -> u) -> Window -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> Window -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Window -> m Window

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Window -> m Window

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Window -> m Window

Ord Window Source # |
Instance details Defined in SDL.Internal.Types Methods compare :: Window -> Window -> Ordering (<) :: Window -> Window -> Bool (<=) :: Window -> Window -> Bool (>) :: Window -> Window -> Bool (>=) :: Window -> Window -> Bool max :: Window -> Window -> Window min :: Window -> Window -> Window
Show Window Source # |
Instance details Defined in SDL.Internal.Types Methods showsPrec :: Int -> Window -> ShowS show :: Window -> String showList :: [Window] -> ShowS
Generic Window Source # |
Instance details Defined in SDL.Internal.Types Associated Types type Rep Window :: Type -> Type Methods from :: Window -> Rep Window x to :: Rep Window x -> Window
type Rep Window Source # |
Instance details Defined in SDL.Internal.Types type Rep Window = D1 ('MetaData "Window" "SDL.Internal.Types" "sdl2-2.5.2.0-Cx4Ipj2keSJFpflqvJYEGr" 'True) (C1 ('MetaCons "Window" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Window)))

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
      , windowGraphicsContext = NoGraphicsContext
      , windowPosition        = Wherever
      , windowResizable       = False
      , windowInitialSize     = V2 800 600
      , windowVisible         = True
      }

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`.

- windowGraphicsContext :: WindowGraphicsContext

  Defaults to `NoGraphicsContext`. 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 by changing `windowSize`.

- windowInitialSize :: V2 CInt

  Defaults to `(800, 600)`. If you set `windowHighDPI` flag, window size in screen coordinates may differ from the size in pixels. Use `glGetDrawableSize` or `vkGetDrawableSize` to get size in pixels.

- windowVisible :: Bool

  Defaults to `True`.

#### Instances

Instances details

Eq WindowConfig Source # |
Instance details Defined in SDL.Video Methods (==) :: WindowConfig -> WindowConfig -> Bool (/=) :: WindowConfig -> WindowConfig -> Bool
Ord WindowConfig Source # |
Instance details Defined in SDL.Video Methods compare :: WindowConfig -> WindowConfig -> Ordering (<) :: WindowConfig -> WindowConfig -> Bool (<=) :: WindowConfig -> WindowConfig -> Bool (>) :: WindowConfig -> WindowConfig -> Bool (>=) :: WindowConfig -> WindowConfig -> Bool max :: WindowConfig -> WindowConfig -> WindowConfig min :: WindowConfig -> WindowConfig -> WindowConfig
Read WindowConfig Source # |
Instance details Defined in SDL.Video Methods readsPrec :: Int -> ReadS WindowConfig readList :: ReadS [WindowConfig] readPrec :: ReadPrec WindowConfig readListPrec :: ReadPrec [WindowConfig]
Show WindowConfig Source # |
Instance details Defined in SDL.Video Methods showsPrec :: Int -> WindowConfig -> ShowS show :: WindowConfig -> String showList :: [WindowConfig] -> ShowS
Generic WindowConfig Source # |
Instance details Defined in SDL.Video Associated Types type Rep WindowConfig :: Type -> Type Methods from :: WindowConfig -> Rep WindowConfig x to :: Rep WindowConfig x -> WindowConfig
type Rep WindowConfig Source # |

Instance details

Defined in SDL.Video

type Rep WindowConfig = D1 ('MetaData "WindowConfig" "SDL.Video" "sdl2-2.5.2.0-Cx4Ipj2keSJFpflqvJYEGr" 'False) (C1 ('MetaCons "WindowConfig" 'PrefixI 'True) (((S1 ('MetaSel ('Just "windowBorder") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "windowHighDPI") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just "windowInputGrabbed") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "windowMode") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 WindowMode))) :*: ((S1 ('MetaSel ('Just "windowGraphicsContext") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 WindowGraphicsContext) :*: S1 ('MetaSel ('Just "windowPosition") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 WindowPosition)) :*: (S1 ('MetaSel ('Just "windowResizable") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: (S1 ('MetaSel ('Just "windowInitialSize") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (V2 CInt)) :*: S1 ('MetaSel ('Just "windowVisible") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))))))

data WindowGraphicsContext Source #

Configuration of additional graphics context that will be created for window.

Can not be changed after window creation.

Constructors

NoGraphicsContext | Window will be created without any additional graphics context.
OpenGLContext OpenGLConfig | Window will be created with OpenGL support with parameters from `OpenGLConfig`.

VulkanContext

Window will be created with Vulkan support. The following functions will be implicitly called by SDL C library:

1. analogue of `vkLoadLibrary` `Nothing` will be called automatically before first window creation;
2. analogue of `vkUnloadLibrary` will be called after last window destruction.

#### Instances

Instances details

Eq WindowGraphicsContext Source # |
Instance details Defined in SDL.Video Methods (==) :: WindowGraphicsContext -> WindowGraphicsContext -> Bool (/=) :: WindowGraphicsContext -> WindowGraphicsContext -> Bool
Ord WindowGraphicsContext Source # |

Instance details

Defined in SDL.Video

Methods

compare :: WindowGraphicsContext -> WindowGraphicsContext -> Ordering

(<) :: WindowGraphicsContext -> WindowGraphicsContext -> Bool

(<=) :: WindowGraphicsContext -> WindowGraphicsContext -> Bool

(>) :: WindowGraphicsContext -> WindowGraphicsContext -> Bool

(>=) :: WindowGraphicsContext -> WindowGraphicsContext -> Bool

max :: WindowGraphicsContext -> WindowGraphicsContext -> WindowGraphicsContext

min :: WindowGraphicsContext -> WindowGraphicsContext -> WindowGraphicsContext

Read WindowGraphicsContext Source # |
Instance details Defined in SDL.Video Methods readsPrec :: Int -> ReadS WindowGraphicsContext readList :: ReadS [WindowGraphicsContext] readPrec :: ReadPrec WindowGraphicsContext readListPrec :: ReadPrec [WindowGraphicsContext]
Show WindowGraphicsContext Source # |
Instance details Defined in SDL.Video Methods showsPrec :: Int -> WindowGraphicsContext -> ShowS show :: WindowGraphicsContext -> String showList :: [WindowGraphicsContext] -> ShowS
Generic WindowGraphicsContext Source # |
Instance details Defined in SDL.Video Associated Types type Rep WindowGraphicsContext :: Type -> Type Methods from :: WindowGraphicsContext -> Rep WindowGraphicsContext x to :: Rep WindowGraphicsContext x -> WindowGraphicsContext
type Rep WindowGraphicsContext Source # |

Instance details

Defined in SDL.Video

type Rep WindowGraphicsContext = D1 ('MetaData "WindowGraphicsContext" "SDL.Video" "sdl2-2.5.2.0-Cx4Ipj2keSJFpflqvJYEGr" 'False) (C1 ('MetaCons "NoGraphicsContext" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "OpenGLContext" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 OpenGLConfig)) :+: C1 ('MetaCons "VulkanContext" 'PrefixI 'False) (U1 :: Type -> Type)))

data WindowMode Source #

Constructors

Fullscreen | Real fullscreen with a video mode change
FullscreenDesktop | Fake fullscreen that takes the size of the desktop
Maximized |
Minimized |
Windowed |

#### Instances

Instances details

Bounded WindowMode Source # |
Instance details Defined in SDL.Video Methods minBound :: WindowMode maxBound :: WindowMode
Enum WindowMode Source # |
Instance details Defined in SDL.Video Methods succ :: WindowMode -> WindowMode pred :: WindowMode -> WindowMode toEnum :: Int -> WindowMode fromEnum :: WindowMode -> Int enumFrom :: WindowMode -> [WindowMode] enumFromThen :: WindowMode -> WindowMode -> [WindowMode] enumFromTo :: WindowMode -> WindowMode -> [WindowMode] enumFromThenTo :: WindowMode -> WindowMode -> WindowMode -> [WindowMode]
Eq WindowMode Source # |
Instance details Defined in SDL.Video Methods (==) :: WindowMode -> WindowMode -> Bool (/=) :: WindowMode -> WindowMode -> Bool
Data WindowMode Source # |

Instance details

Defined in SDL.Video

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> WindowMode -> c WindowMode

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c WindowMode

toConstr :: WindowMode -> Constr

dataTypeOf :: WindowMode -> DataType

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c WindowMode)

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c WindowMode)

gmapT :: (forall b. Data b => b -> b) -> WindowMode -> WindowMode

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> WindowMode -> r

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> WindowMode -> r

gmapQ :: (forall d. Data d => d -> u) -> WindowMode -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> WindowMode -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> WindowMode -> m WindowMode

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> WindowMode -> m WindowMode

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> WindowMode -> m WindowMode

Ord WindowMode Source # |
Instance details Defined in SDL.Video Methods compare :: WindowMode -> WindowMode -> Ordering (<) :: WindowMode -> WindowMode -> Bool (<=) :: WindowMode -> WindowMode -> Bool (>) :: WindowMode -> WindowMode -> Bool (>=) :: WindowMode -> WindowMode -> Bool max :: WindowMode -> WindowMode -> WindowMode min :: WindowMode -> WindowMode -> WindowMode
Read WindowMode Source # |
Instance details Defined in SDL.Video Methods readsPrec :: Int -> ReadS WindowMode readList :: ReadS [WindowMode] readPrec :: ReadPrec WindowMode readListPrec :: ReadPrec [WindowMode]
Show WindowMode Source # |
Instance details Defined in SDL.Video Methods showsPrec :: Int -> WindowMode -> ShowS show :: WindowMode -> String showList :: [WindowMode] -> ShowS
Generic WindowMode Source # |
Instance details Defined in SDL.Video Associated Types type Rep WindowMode :: Type -> Type Methods from :: WindowMode -> Rep WindowMode x to :: Rep WindowMode x -> WindowMode
ToNumber WindowMode Word32 Source # |
Instance details Defined in SDL.Video Methods toNumber :: WindowMode -> Word32 Source #
FromNumber WindowMode Word32 Source # |
Instance details Defined in SDL.Video Methods fromNumber :: Word32 -> WindowMode Source #
type Rep WindowMode Source # |

Instance details

Defined in SDL.Video

type Rep WindowMode = D1 ('MetaData "WindowMode" "SDL.Video" "sdl2-2.5.2.0-Cx4Ipj2keSJFpflqvJYEGr" 'False) ((C1 ('MetaCons "Fullscreen" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FullscreenDesktop" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Maximized" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Minimized" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Windowed" 'PrefixI 'False) (U1 :: Type -> Type))))

data WindowPosition Source #

Constructors

Centered |
Wherever | Let the window mananger decide where it's best to place the window.
Absolute (Point V2 CInt) |

#### Instances

Instances details

Eq WindowPosition Source # |
Instance details Defined in SDL.Video Methods (==) :: WindowPosition -> WindowPosition -> Bool (/=) :: WindowPosition -> WindowPosition -> Bool
Ord WindowPosition Source # |

Instance details

Defined in SDL.Video

Methods

compare :: WindowPosition -> WindowPosition -> Ordering

(<) :: WindowPosition -> WindowPosition -> Bool

(<=) :: WindowPosition -> WindowPosition -> Bool

(>) :: WindowPosition -> WindowPosition -> Bool

(>=) :: WindowPosition -> WindowPosition -> Bool

max :: WindowPosition -> WindowPosition -> WindowPosition

min :: WindowPosition -> WindowPosition -> WindowPosition

Read WindowPosition Source # |
Instance details Defined in SDL.Video Methods readsPrec :: Int -> ReadS WindowPosition readList :: ReadS [WindowPosition] readPrec :: ReadPrec WindowPosition readListPrec :: ReadPrec [WindowPosition]
Show WindowPosition Source # |
Instance details Defined in SDL.Video Methods showsPrec :: Int -> WindowPosition -> ShowS show :: WindowPosition -> String showList :: [WindowPosition] -> ShowS
Generic WindowPosition Source # |
Instance details Defined in SDL.Video Associated Types type Rep WindowPosition :: Type -> Type Methods from :: WindowPosition -> Rep WindowPosition x to :: Rep WindowPosition x -> WindowPosition
type Rep WindowPosition Source # |

Instance details

Defined in SDL.Video

type Rep WindowPosition = D1 ('MetaData "WindowPosition" "SDL.Video" "sdl2-2.5.2.0-Cx4Ipj2keSJFpflqvJYEGr" 'False) (C1 ('MetaCons "Centered" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Wherever" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Absolute" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (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.

If window was created with `windowHighDPI` flag, this size may differ from the size in pixels. Use `glGetDrawableSize` or `vkGetDrawableSize` to get size in pixels.

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`.

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

Retrieve the configuration of the given window.

Note that `NoGraphicsContext` 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.

data PixelFormat Source #

Constructors

Unknown |
Index1LSB |
Index1MSB |
Index4LSB |
Index4MSB |
Index8 |
RGB332 |
RGB444 |
RGB555 |
BGR555 |
ARGB4444 |
RGBA4444 |
ABGR4444 |
BGRA4444 |
ARGB1555 |
RGBA5551 |
ABGR1555 |
BGRA5551 |
RGB565 |
BGR565 |
RGB24 |
BGR24 |
RGB888 |
RGBX8888 |
BGR888 |
BGRX8888 |
ARGB8888 |
RGBA8888 |
ABGR8888 |
BGRA8888 |
ARGB2101010 |
YV12 |
IYUV |
YUY2 |
UYVY |
YVYU |

#### Instances

Instances details

Bounded PixelFormat Source # |
Instance details Defined in SDL.Video.Renderer Methods minBound :: PixelFormat maxBound :: PixelFormat
Enum PixelFormat Source # |

Instance details

Defined in SDL.Video.Renderer

Methods

succ :: PixelFormat -> PixelFormat

pred :: PixelFormat -> PixelFormat

toEnum :: Int -> PixelFormat

fromEnum :: PixelFormat -> Int

enumFrom :: PixelFormat -> [PixelFormat]

enumFromThen :: PixelFormat -> PixelFormat -> [PixelFormat]

enumFromTo :: PixelFormat -> PixelFormat -> [PixelFormat]

enumFromThenTo :: PixelFormat -> PixelFormat -> PixelFormat -> [PixelFormat]

Eq PixelFormat Source # |
Instance details Defined in SDL.Video.Renderer Methods (==) :: PixelFormat -> PixelFormat -> Bool (/=) :: PixelFormat -> PixelFormat -> Bool
Data PixelFormat Source # |

Instance details

Defined in SDL.Video.Renderer

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> PixelFormat -> c PixelFormat

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c PixelFormat

toConstr :: PixelFormat -> Constr

dataTypeOf :: PixelFormat -> DataType

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c PixelFormat)

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PixelFormat)

gmapT :: (forall b. Data b => b -> b) -> PixelFormat -> PixelFormat

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PixelFormat -> r

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PixelFormat -> r

gmapQ :: (forall d. Data d => d -> u) -> PixelFormat -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> PixelFormat -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> PixelFormat -> m PixelFormat

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PixelFormat -> m PixelFormat

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PixelFormat -> m PixelFormat

Ord PixelFormat Source # |
Instance details Defined in SDL.Video.Renderer Methods compare :: PixelFormat -> PixelFormat -> Ordering (<) :: PixelFormat -> PixelFormat -> Bool (<=) :: PixelFormat -> PixelFormat -> Bool (>) :: PixelFormat -> PixelFormat -> Bool (>=) :: PixelFormat -> PixelFormat -> Bool max :: PixelFormat -> PixelFormat -> PixelFormat min :: PixelFormat -> PixelFormat -> PixelFormat
Read PixelFormat Source # |
Instance details Defined in SDL.Video.Renderer Methods readsPrec :: Int -> ReadS PixelFormat readList :: ReadS [PixelFormat] readPrec :: ReadPrec PixelFormat readListPrec :: ReadPrec [PixelFormat]
Show PixelFormat Source # |
Instance details Defined in SDL.Video.Renderer Methods showsPrec :: Int -> PixelFormat -> ShowS show :: PixelFormat -> String showList :: [PixelFormat] -> ShowS
Generic PixelFormat Source # |
Instance details Defined in SDL.Video.Renderer Associated Types type Rep PixelFormat :: Type -> Type Methods from :: PixelFormat -> Rep PixelFormat x to :: Rep PixelFormat x -> PixelFormat
ToNumber PixelFormat Word32 Source # |
Instance details Defined in SDL.Video.Renderer Methods toNumber :: PixelFormat -> Word32 Source #
FromNumber PixelFormat Word32 Source # |
Instance details Defined in SDL.Video.Renderer Methods fromNumber :: Word32 -> PixelFormat Source #
type Rep PixelFormat Source # |

Instance details

Defined in SDL.Video.Renderer

type Rep PixelFormat = D1 ('MetaData "PixelFormat" "SDL.Video.Renderer" "sdl2-2.5.2.0-Cx4Ipj2keSJFpflqvJYEGr" 'False) (((((C1 ('MetaCons "Unknown" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Index1LSB" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Index1MSB" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Index4LSB" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "Index4MSB" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Index8" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "RGB332" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "RGB444" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RGB555" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "BGR555" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ARGB4444" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "RGBA4444" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ABGR4444" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "BGRA4444" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ARGB1555" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "RGBA5551" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ABGR1555" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BGRA5551" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "RGB565" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BGR565" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "RGB24" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BGR24" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "RGB888" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RGBX8888" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "BGR888" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "BGRX8888" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ARGB8888" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "RGBA8888" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ABGR8888" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "BGRA8888" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ARGB2101010" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "YV12" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "IYUV" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "YUY2" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "UYVY" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "YVYU" 'PrefixI 'False) (U1 :: Type -> Type)))))))

# Renderer Management

createRenderer :: MonadIO m => Window -> CInt -> RendererConfig -> m Renderer Source #

createSoftwareRenderer :: MonadIO m => Surface -> m Renderer Source #

Create a 2D software rendering context for the given surface.

See `https://wiki.libsdl.org/SDL_CreateSoftwareRenderer`

destroyRenderer :: MonadIO m => Renderer -> m () Source #

# 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]

#### Instances

Instances details

Eq Display Source # |
Instance details Defined in SDL.Video Methods (==) :: Display -> Display -> Bool (/=) :: Display -> Display -> Bool
Ord Display Source # |
Instance details Defined in SDL.Video Methods compare :: Display -> Display -> Ordering (<) :: Display -> Display -> Bool (<=) :: Display -> Display -> Bool (>) :: Display -> Display -> Bool (>=) :: Display -> Display -> Bool max :: Display -> Display -> Display min :: Display -> Display -> Display
Read Display Source # |
Instance details Defined in SDL.Video Methods readsPrec :: Int -> ReadS Display readList :: ReadS [Display] readPrec :: ReadPrec Display readListPrec :: ReadPrec [Display]
Show Display Source # |
Instance details Defined in SDL.Video Methods showsPrec :: Int -> Display -> ShowS show :: Display -> String showList :: [Display] -> ShowS
Generic Display Source # |
Instance details Defined in SDL.Video Associated Types type Rep Display :: Type -> Type Methods from :: Display -> Rep Display x to :: Rep Display x -> Display
type Rep Display Source # |

Instance details

Defined in SDL.Video

type Rep Display = D1 ('MetaData "Display" "SDL.Video" "sdl2-2.5.2.0-Cx4Ipj2keSJFpflqvJYEGr" 'False) (C1 ('MetaCons "Display" 'PrefixI 'True) ((S1 ('MetaSel ('Just "displayName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "displayBoundsPosition") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Point V2 CInt))) :*: (S1 ('MetaSel ('Just "displayBoundsSize") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (V2 CInt)) :*: S1 ('MetaSel ('Just "displayModes") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [DisplayMode]))))

data DisplayMode Source #

Constructors

DisplayMode |

Fields

- displayModeFormat :: PixelFormat
- displayModeSize :: V2 CInt
- displayModeRefreshRate :: CInt

  Display's refresh rate in hertz, or `0` if unspecified.

#### Instances

Instances details

Eq DisplayMode Source # |
Instance details Defined in SDL.Video Methods (==) :: DisplayMode -> DisplayMode -> Bool (/=) :: DisplayMode -> DisplayMode -> Bool
Ord DisplayMode Source # |
Instance details Defined in SDL.Video Methods compare :: DisplayMode -> DisplayMode -> Ordering (<) :: DisplayMode -> DisplayMode -> Bool (<=) :: DisplayMode -> DisplayMode -> Bool (>) :: DisplayMode -> DisplayMode -> Bool (>=) :: DisplayMode -> DisplayMode -> Bool max :: DisplayMode -> DisplayMode -> DisplayMode min :: DisplayMode -> DisplayMode -> DisplayMode
Read DisplayMode Source # |
Instance details Defined in SDL.Video Methods readsPrec :: Int -> ReadS DisplayMode readList :: ReadS [DisplayMode] readPrec :: ReadPrec DisplayMode readListPrec :: ReadPrec [DisplayMode]
Show DisplayMode Source # |
Instance details Defined in SDL.Video Methods showsPrec :: Int -> DisplayMode -> ShowS show :: DisplayMode -> String showList :: [DisplayMode] -> ShowS
Generic DisplayMode Source # |
Instance details Defined in SDL.Video Associated Types type Rep DisplayMode :: Type -> Type Methods from :: DisplayMode -> Rep DisplayMode x to :: Rep DisplayMode x -> DisplayMode
type Rep DisplayMode Source # |

Instance details

Defined in SDL.Video

type Rep DisplayMode = D1 ('MetaData "DisplayMode" "SDL.Video" "sdl2-2.5.2.0-Cx4Ipj2keSJFpflqvJYEGr" 'False) (C1 ('MetaCons "DisplayMode" 'PrefixI 'True) (S1 ('MetaSel ('Just "displayModeFormat") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PixelFormat) :*: (S1 ('MetaSel ('Just "displayModeSize") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (V2 CInt)) :*: S1 ('MetaSel ('Just "displayModeRefreshRate") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CInt))))

data VideoDriver Source #

Constructors

VideoDriver |

Fields

- videoDriverName :: String

#### Instances

Instances details

Eq VideoDriver Source # |
Instance details Defined in SDL.Video Methods (==) :: VideoDriver -> VideoDriver -> Bool (/=) :: VideoDriver -> VideoDriver -> Bool
Data VideoDriver Source # |

Instance details

Defined in SDL.Video

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> VideoDriver -> c VideoDriver

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c VideoDriver

toConstr :: VideoDriver -> Constr

dataTypeOf :: VideoDriver -> DataType

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c VideoDriver)

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c VideoDriver)

gmapT :: (forall b. Data b => b -> b) -> VideoDriver -> VideoDriver

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> VideoDriver -> r

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> VideoDriver -> r

gmapQ :: (forall d. Data d => d -> u) -> VideoDriver -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> VideoDriver -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> VideoDriver -> m VideoDriver

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> VideoDriver -> m VideoDriver

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> VideoDriver -> m VideoDriver

Ord VideoDriver Source # |
Instance details Defined in SDL.Video Methods compare :: VideoDriver -> VideoDriver -> Ordering (<) :: VideoDriver -> VideoDriver -> Bool (<=) :: VideoDriver -> VideoDriver -> Bool (>) :: VideoDriver -> VideoDriver -> Bool (>=) :: VideoDriver -> VideoDriver -> Bool max :: VideoDriver -> VideoDriver -> VideoDriver min :: VideoDriver -> VideoDriver -> VideoDriver
Read VideoDriver Source # |
Instance details Defined in SDL.Video Methods readsPrec :: Int -> ReadS VideoDriver readList :: ReadS [VideoDriver] readPrec :: ReadPrec VideoDriver readListPrec :: ReadPrec [VideoDriver]
Show VideoDriver Source # |
Instance details Defined in SDL.Video Methods showsPrec :: Int -> VideoDriver -> ShowS show :: VideoDriver -> String showList :: [VideoDriver] -> ShowS
Generic VideoDriver Source # |
Instance details Defined in SDL.Video Associated Types type Rep VideoDriver :: Type -> Type Methods from :: VideoDriver -> Rep VideoDriver x to :: Rep VideoDriver x -> VideoDriver
type Rep VideoDriver Source # |
Instance details Defined in SDL.Video type Rep VideoDriver = D1 ('MetaData "VideoDriver" "SDL.Video" "sdl2-2.5.2.0-Cx4Ipj2keSJFpflqvJYEGr" 'False) (C1 ('MetaCons "VideoDriver" 'PrefixI 'True) (S1 ('MetaSel ('Just "videoDriverName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)))

# 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.

screenSaverEnabled :: StateVar Bool Source #

Get or set whether to allow the screen to be blanked by a screen saver.

Screen savers are re-enabled, if needed, when SDL quits.

# 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.

data MessageKind Source #

Constructors

Error |
Warning |
Information |

#### Instances

Instances details

Bounded MessageKind Source # |
Instance details Defined in SDL.Video Methods minBound :: MessageKind maxBound :: MessageKind
Enum MessageKind Source # |

Instance details

Defined in SDL.Video

Methods

succ :: MessageKind -> MessageKind

pred :: MessageKind -> MessageKind

toEnum :: Int -> MessageKind

fromEnum :: MessageKind -> Int

enumFrom :: MessageKind -> [MessageKind]

enumFromThen :: MessageKind -> MessageKind -> [MessageKind]

enumFromTo :: MessageKind -> MessageKind -> [MessageKind]

enumFromThenTo :: MessageKind -> MessageKind -> MessageKind -> [MessageKind]

Eq MessageKind Source # |
Instance details Defined in SDL.Video Methods (==) :: MessageKind -> MessageKind -> Bool (/=) :: MessageKind -> MessageKind -> Bool
Data MessageKind Source # |

Instance details

Defined in SDL.Video

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> MessageKind -> c MessageKind

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c MessageKind

toConstr :: MessageKind -> Constr

dataTypeOf :: MessageKind -> DataType

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c MessageKind)

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c MessageKind)

gmapT :: (forall b. Data b => b -> b) -> MessageKind -> MessageKind

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> MessageKind -> r

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> MessageKind -> r

gmapQ :: (forall d. Data d => d -> u) -> MessageKind -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> MessageKind -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> MessageKind -> m MessageKind

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> MessageKind -> m MessageKind

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> MessageKind -> m MessageKind

Ord MessageKind Source # |
Instance details Defined in SDL.Video Methods compare :: MessageKind -> MessageKind -> Ordering (<) :: MessageKind -> MessageKind -> Bool (<=) :: MessageKind -> MessageKind -> Bool (>) :: MessageKind -> MessageKind -> Bool (>=) :: MessageKind -> MessageKind -> Bool max :: MessageKind -> MessageKind -> MessageKind min :: MessageKind -> MessageKind -> MessageKind
Read MessageKind Source # |
Instance details Defined in SDL.Video Methods readsPrec :: Int -> ReadS MessageKind readList :: ReadS [MessageKind] readPrec :: ReadPrec MessageKind readListPrec :: ReadPrec [MessageKind]
Show MessageKind Source # |
Instance details Defined in SDL.Video Methods showsPrec :: Int -> MessageKind -> ShowS show :: MessageKind -> String showList :: [MessageKind] -> ShowS
Generic MessageKind Source # |
Instance details Defined in SDL.Video Associated Types type Rep MessageKind :: Type -> Type Methods from :: MessageKind -> Rep MessageKind x to :: Rep MessageKind x -> MessageKind
ToNumber MessageKind Word32 Source # |
Instance details Defined in SDL.Video Methods toNumber :: MessageKind -> Word32 Source #
type Rep MessageKind Source # |
Instance details Defined in SDL.Video type Rep MessageKind = D1 ('MetaData "MessageKind" "SDL.Video" "sdl2-2.5.2.0-Cx4Ipj2keSJFpflqvJYEGr" 'False) (C1 ('MetaCons "Error" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Warning" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Information" 'PrefixI 'False) (U1 :: Type -> Type)))