free-game-0.9.1: Create graphical applications for free

Portabilitynon-portable
Stabilityexperimental
MaintainerFumiaki Kinsohita <fumiexcel@gmail.com>
Safe HaskellNone

Graphics.UI.FreeGame.Base

Contents

Description

Abstract structures for descripting user interfaces

Synopsis

Types

data UI m a Source

A functor enriches given functor with control structure.

Constructors

Tick a 
EmbedIO (IO a) 
LiftUI (m a) 
Bracket (F (UI m) a) 
Quit 

Instances

Functor m => Functor (UI m) 
Functor m => MonadIO (F (UI m)) 
Functor m => MonadIO (Free (UI m)) 
FromFinalizer m => FromFinalizer (UI m) 
Mouse m => Mouse (UI m) 
Keyboard m => Keyboard (UI m) 
Figure2D m => Figure2D (UI m) 
Picture2D m => Picture2D (UI m) 

Basic operations

tick :: MonadFree (UI n) m => m ()Source

Finalize the current frame and refresh the screen.

bracket :: MonadFree (UI n) m => F (UI n) a -> m aSource

Run a Game monad in a Game monad. resources (e.g. pictures) will be released when inner computation is done.

quit :: MonadFree (UI n) m => m VoidSource

Break the entire computation.

embedIO :: MonadFree (UI n) m => IO a -> m aSource

Lift an arbitrary IO action.

liftUI :: (Functor n, MonadFree (UI n) m) => n a -> m aSource

Lift UI's base functor.

_LiftUI :: Applicative f => (m a -> f (m a)) -> UI m a -> f (UI m a)Source

_LiftUI :: Traversal' (UI m a) (m a)

Classes

class Picture2D p whereSource

The class of types that can be regarded as a kind of picture.

Methods

fromBitmap :: Bitmap -> p ()Source

Construct a Picture2D from a Bitmap.

rotate :: Float -> p a -> p aSource

Counterclockwise, degrees

scale :: V2 Float -> p a -> p aSource

translate :: V2 Float -> p a -> p aSource

colored :: Color -> p a -> p aSource

Instances

Picture2D Picture 
Picture2D GUIBase 
(Picture2D m, Monad m) => Picture2D (IdentityT m) 
(Picture2D m, Functor m) => Picture2D (F m) 
(Picture2D m, Functor m) => Picture2D (Free m) 
(Picture2D m, Monad m) => Picture2D (ListT m) 
(Picture2D m, Monad m) => Picture2D (MaybeT m) 
Picture2D m => Picture2D (UI m) 
(Picture2D m, Monad m) => Picture2D (ContT r m) 
(Picture2D m, Monad m, Error e) => Picture2D (ErrorT e m) 
(Picture2D m, Monad m) => Picture2D (ReaderT r m) 
(Picture2D m, Monad m) => Picture2D (StateT s m) 
(Picture2D m, Monad m) => Picture2D (StateT s m) 
(Picture2D m, Monad m, Monoid w) => Picture2D (WriterT w m) 
(Picture2D m, Monad m, Monoid w) => Picture2D (WriterT w m) 
(Picture2D m, Monad m, Monoid w) => Picture2D (RWST r w s m) 
(Picture2D m, Monad m, Monoid w) => Picture2D (RWST r w s m) 

class Picture2D p => Figure2D p whereSource

Methods

line :: [V2 Float] -> p ()Source

polygon :: [V2 Float] -> p ()Source

polygonOutline :: [V2 Float] -> p ()Source

circle :: Float -> p ()Source

circleOutline :: Float -> p ()Source

thickness :: Float -> p a -> p aSource

Instances

Figure2D Picture 
Figure2D GUIBase 
(Figure2D m, Monad m) => Figure2D (IdentityT m) 
(Figure2D m, Functor m) => Figure2D (F m) 
(Figure2D m, Functor m) => Figure2D (Free m) 
(Figure2D m, Monad m) => Figure2D (ListT m) 
(Figure2D m, Monad m) => Figure2D (MaybeT m) 
Figure2D m => Figure2D (UI m) 
(Figure2D m, Monad m) => Figure2D (ContT r m) 
(Figure2D m, Monad m, Error e) => Figure2D (ErrorT e m) 
(Figure2D m, Monad m) => Figure2D (ReaderT r m) 
(Figure2D m, Monad m) => Figure2D (StateT s m) 
(Figure2D m, Monad m) => Figure2D (StateT s m) 
(Figure2D m, Monad m, Monoid w) => Figure2D (WriterT w m) 
(Figure2D m, Monad m, Monoid w) => Figure2D (WriterT w m) 
(Figure2D m, Monad m, Monoid w) => Figure2D (RWST r w s m) 
(Figure2D m, Monad m, Monoid w) => Figure2D (RWST r w s m) 

class Keyboard t whereSource

The class of types that can handle inputs of the keyboard.

Instances

Keyboard GUIInput 
Keyboard GUIBase 
(Keyboard m, Monad m) => Keyboard (IdentityT m) 
Keyboard m => Keyboard (Ap m) 
(Keyboard m, Functor m) => Keyboard (F m) 
(Keyboard m, Functor m) => Keyboard (Free m) 
(Keyboard m, Monad m) => Keyboard (ListT m) 
(Keyboard m, Monad m) => Keyboard (MaybeT m) 
Keyboard m => Keyboard (UI m) 
(Keyboard m, Monad m) => Keyboard (ContT r m) 
(Keyboard m, Monad m, Error e) => Keyboard (ErrorT e m) 
(Keyboard m, Monad m) => Keyboard (ReaderT s m) 
(Keyboard m, Monad m) => Keyboard (StateT s m) 
(Keyboard m, Monad m) => Keyboard (StateT s m) 
(Keyboard m, Monad m, Monoid w) => Keyboard (WriterT w m) 
(Keyboard m, Monad m, Monoid w) => Keyboard (WriterT w m) 
(Keyboard m, Monad m, Monoid w) => Keyboard (RWST r w s m) 
(Keyboard m, Monad m, Monoid w) => Keyboard (RWST r w s m) 

class Mouse t whereSource

The class of types that can handle inputs of the mouse.

Instances

Mouse GUIInput 
Mouse GUIBase 
(Mouse m, Monad m) => Mouse (IdentityT m) 
Mouse m => Mouse (Ap m) 
(Mouse m, Functor m) => Mouse (F m) 
(Mouse m, Functor m) => Mouse (Free m) 
(Mouse m, Monad m) => Mouse (ListT m) 
(Mouse m, Monad m) => Mouse (MaybeT m) 
Mouse m => Mouse (UI m) 
(Mouse m, Monad m) => Mouse (ContT r m) 
(Mouse m, Monad m, Error e) => Mouse (ErrorT e m) 
(Mouse m, Monad m) => Mouse (ReaderT r m) 
(Mouse m, Monad m) => Mouse (StateT s m) 
(Mouse m, Monad m) => Mouse (StateT s m) 
(Mouse m, Monad m, Monoid w) => Mouse (WriterT w m) 
(Mouse m, Monad m, Monoid w) => Mouse (WriterT w m) 
(Mouse m, Monad m, Monoid w) => Mouse (RWST r w s m) 
(Mouse m, Monad m, Monoid w) => Mouse (RWST r w s m)