Safe Haskell | None |
---|---|
Language | Haskell2010 |
Display game data on the screen and receive user input using one of the available raw frontends and derived operations.
Synopsis
- data FrontReq :: Type -> Type where
- FrontFrame :: Frame -> FrontReq ()
- FrontDelay :: Int -> FrontReq ()
- FrontKey :: [KM] -> Frame -> FrontReq KMP
- FrontPressed :: FrontReq Bool
- FrontDiscardKey :: FrontReq ()
- FrontResetKeys :: FrontReq ()
- FrontAdd :: KMP -> FrontReq ()
- FrontAutoYes :: Bool -> FrontReq ()
- FrontShutdown :: FrontReq ()
- FrontPrintScreen :: FrontReq ()
- newtype ChanFrontend = ChanFrontend (forall a. FrontReq a -> IO a)
- chanFrontendIO :: ScreenContent -> ClientOptions -> IO ChanFrontend
- frontendName :: ClientOptions -> String
- data FrontSetup
- getKey :: FrontSetup -> RawFrontend -> [KM] -> Frame -> IO KMP
- fchanFrontend :: FrontSetup -> RawFrontend -> ChanFrontend
- display :: RawFrontend -> Frame -> IO ()
- defaultMaxFps :: Double
- microInSec :: Int
- frameTimeoutThread :: Int -> MVar Int -> RawFrontend -> IO ()
- lazyStartup :: ScreenContent -> IO RawFrontend
- nullStartup :: ScreenContent -> IO RawFrontend
- seqFrame :: SingleFrame -> IO ()
Connection and initialization
data FrontReq :: Type -> Type where Source #
The instructions sent by clients to the raw frontend, indexed by the returned value.
FrontFrame :: Frame -> FrontReq () | Show a frame. |
FrontDelay :: Int -> FrontReq () | Perform an explicit delay of the given length. |
FrontKey :: [KM] -> Frame -> FrontReq KMP | Flush frames, display a frame and ask for a keypress. |
FrontPressed :: FrontReq Bool | Tell if a keypress is pending. |
FrontDiscardKey :: FrontReq () | Discard a key in the queue, if any. |
FrontResetKeys :: FrontReq () | Discard all keys in the queue. |
FrontAdd :: KMP -> FrontReq () | Add a key to the queue. |
FrontAutoYes :: Bool -> FrontReq () | Set in the frontend that it should auto-answer prompts. |
FrontShutdown :: FrontReq () | Shut the frontend down. |
FrontPrintScreen :: FrontReq () | Take screenshot. |
newtype ChanFrontend Source #
Connection channel between a frontend and a client. Frontend acts as a server, serving keys, etc., when given frames to display.
ChanFrontend (forall a. FrontReq a -> IO a) |
chanFrontendIO :: ScreenContent -> ClientOptions -> IO ChanFrontend Source #
Initialize the frontend chosen by the player via client options.
Re-exported part of the raw frontend
frontendName :: ClientOptions -> String Source #
The name of the chosen frontend.
Internal operations
data FrontSetup Source #
Machinery allocated for an individual frontend at its startup, unchanged for its lifetime.
getKey :: FrontSetup -> RawFrontend -> [KM] -> Frame -> IO KMP Source #
fchanFrontend :: FrontSetup -> RawFrontend -> ChanFrontend Source #
microInSec :: Int Source #
frameTimeoutThread :: Int -> MVar Int -> RawFrontend -> IO () Source #
lazyStartup :: ScreenContent -> IO RawFrontend Source #
nullStartup :: ScreenContent -> IO RawFrontend Source #
seqFrame :: SingleFrame -> IO () Source #