Safe Haskell | None |
---|---|
Language | Haskell2010 |
Screen frames.
- type FrameST s = Mutable Vector s Word32 -> ST s ()
- newtype FrameForall = FrameForall {
- unFrameForall :: forall s. FrameST s
- writeLine :: Int -> AttrLine -> FrameForall
- newtype SingleFrame = SingleFrame {}
- type Frames = [Maybe FrameForall]
- blankSingleFrame :: SingleFrame
- overlayFrame :: IntOverlay -> FrameForall -> FrameForall
- overlayFrameWithLines :: Bool -> Overlay -> FrameForall -> FrameForall
- truncateAttrLine :: X -> AttrLine -> X -> AttrLine
Documentation
newtype FrameForall Source #
Efficiently composable representation of an operation
on a frame, that is, on a mutable vector. When the composite operation
is eventually performed, the vector is frozen to become a SingleFrame
.
FrameForall | |
|
writeLine :: Int -> AttrLine -> FrameForall Source #
Representation of an operation of overwriting a frame with a single line at the given row.
newtype SingleFrame Source #
An overlay that fits on the screen (or is meant to be truncated on display) and is padded to fill the whole screen and is displayed as a single game screen frame.
Note that we don't provide a list of color-highlighed positions separately, because overlays need to obscure not only map, but the highlights as well.
type Frames = [Maybe FrameForall] Source #
Sequences of screen frames, including delays.
overlayFrame :: IntOverlay -> FrameForall -> FrameForall Source #
Overlays either the game map only or the whole empty screen frame. We assume the lines of the overlay are not too long nor too many.
overlayFrameWithLines :: Bool -> Overlay -> FrameForall -> FrameForall Source #