gore-and-ash-sdl-2.1.0.0: Gore&Ash core module for integration with SDL library

Copyright(c) Anton Gushcha, 2015-2016
LicenseBSD3
Maintainerncrashed@gmail.com
Stabilityexperimental
PortabilityPOSIX
Safe HaskellNone
LanguageHaskell2010

Game.GoreAndAsh.SDL.State

Description

 

Synopsis

Documentation

data SDLState s Source

Inner state of SDL module.

s
- State of next module, the states are chained via nesting.

Constructors

SDLState 

Fields

sdlNextState :: !s
 
sdlWindows :: !(HashMap WindowName WindowInfo)
 
sdlWindowShownEvents :: !(Seq WindowShownEventData)
 
sdlWindowHiddenEvents :: !(Seq WindowHiddenEventData)
 
sdlWindowExposedEvents :: !(Seq WindowExposedEventData)
 
sdlWindowMovedEvents :: !(Seq WindowMovedEventData)
 
sdlWindowResizedEvents :: !(Seq WindowResizedEventData)
 
sdlWindowSizeChangedEvents :: !(Seq WindowSizeChangedEventData)
 
sdlWindowMinimizedEvents :: !(Seq WindowMinimizedEventData)
 
sdlWindowMaximizedEvents :: !(Seq WindowMaximizedEventData)
 
sdlWindowRestoredEvents :: !(Seq WindowRestoredEventData)
 
sdlWindowGainedMouseFocusEvents :: !(Seq WindowGainedMouseFocusEventData)
 
sdlWindowLostMouseFocusEvents :: !(Seq WindowLostMouseFocusEventData)
 
sdlWindowGainedKeyboardFocusEvents :: !(Seq WindowGainedKeyboardFocusEventData)
 
sdlWindowLostKeyboardFocusEvents :: !(Seq WindowLostKeyboardFocusEventData)
 
sdlWindowClosedEvents :: !(Seq WindowClosedEventData)
 
sdlKeyboardEvents :: !(Seq KeyboardEventData)
 
sdlTextEditingEvents :: !(Seq TextEditingEventData)
 
sdlTextInputEvents :: !(Seq TextInputEventData)
 
sdlMouseMotionEvents :: !(Seq MouseMotionEventData)
 
sdlMouseButtonEvents :: !(Seq MouseButtonEventData)
 
sdlMouseWheelEvents :: !(Seq MouseWheelEventData)
 
sdlJoyAxisEvents :: !(Seq JoyAxisEventData)
 
sdlJoyBallEvents :: !(Seq JoyBallEventData)
 
sdlJoyHatEvents :: !(Seq JoyHatEventData)
 
sdlJoyButtonEvents :: !(Seq JoyButtonEventData)
 
sdlJoyDeviceEvents :: !(Seq JoyDeviceEventData)
 
sdlControllerAxisEvents :: !(Seq ControllerAxisEventData)
 
sdlControllerButtonEvents :: !(Seq ControllerButtonEventData)
 
sdlControllerDeviceEvents :: !(Seq ControllerDeviceEventData)
 
sdlQuitEvent :: !Bool
 
sdlUserEvents :: !(Seq UserEventData)
 
sdlSysWMEvents :: !(Seq SysWMEventData)
 
sdlTouchFingerEvents :: !(Seq TouchFingerEventData)
 
sdlMultiGestureEvents :: !(Seq MultiGestureEventData)
 
sdlDollarGestureEvents :: !(Seq DollarGestureEventData)
 
sdlDropEvents :: !(Seq DropEventData)
 
sdlClipboardUpdateEvents :: !(Seq ClipboardUpdateEventData)
 

Instances

Generic (SDLState s) Source 
NFData s => NFData (SDLState s) Source 
Monad m => MonadState (SDLState s) (SDLT s m) 
type Rep (SDLState s) Source 

type WindowName = Text Source

Windows are uniquely identified by names

data WindowInfo Source

Context of window

Constructors

WindowInfo 

Fields

winfoWindow :: !Window
 
winfoRenderer :: !Renderer
 
winfoColor :: !(Maybe (V4 Word8))
 
winfoContext :: !(Maybe GLContext)
 

emptySDLState :: s -> SDLState s Source

Creates empty module state

flashSDLState :: SDLState s -> SDLState s Source

After full cycle of simulation all events are dropped

Helpers

whenJust :: Monad m => Maybe a -> (a -> m ()) -> m () Source

Helper to trigger action when value is Just