Safe Haskell | None |
---|---|
Language | Haskell2010 |
MiniLight module exports all basic concepts and oprations except for concrete components.
Synopsis
- module MiniLight.Light
- module MiniLight.Event
- module MiniLight.Figure
- module MiniLight.Component
- module MiniLight.Loader
- runLightT :: (MonadIO m, MonadMask m) => LightT LightEnv m a -> m a
- data LoopState = LoopState {}
- data LoopConfig = LoopConfig {}
- defConfig :: LoopConfig
- runMainloop :: (HasLightEnv env, HasLightEnv env', HasLoopEnv env', HasLoaderEnv env', MonadIO m, MonadMask m) => (env -> LoopEnv -> LoaderEnv -> env') -> LoopConfig -> s -> (s -> LightT env' m s) -> LightT env m ()
- type MiniLoop = LightT LoopState IO
- runMiniloop :: LoopConfig -> s -> (s -> MiniLoop s) -> MiniLight ()
Documentation
module MiniLight.Light
module MiniLight.Event
module MiniLight.Figure
module MiniLight.Component
module MiniLight.Loader
The state in the mainloop.
Instances
HasLightEnv LoopState Source # | |
HasLoopEnv LoopState Source # | |
HasLoaderEnv LoopState Source # | |
data LoopConfig Source #
Use defConfig
for a default setting.
LoopConfig | |
|
defConfig :: LoopConfig Source #
Default configurations for the mainloop. You need to set componentResolver
if you use a component.
:: (HasLightEnv env, HasLightEnv env', HasLoopEnv env', HasLoaderEnv env', MonadIO m, MonadMask m) | |
=> (env -> LoopEnv -> LoaderEnv -> env') | Environment conversion |
-> LoopConfig | Loop config |
-> s | Initial state |
-> (s -> LightT env' m s) | A function called in every loop |
-> LightT env m () |
Run a mainloop. In a mainloop, components and events are managed.
Components in a mainloop: draw ~ update ~ (user-defined function) ~ event handling
runMiniloop :: LoopConfig -> s -> (s -> MiniLoop s) -> MiniLight () Source #
Same as runMainloop
but fixing the type.