A Terminal representing a subset of a parent Terminal. Will always be
fully-enclosed by the parent terminal. Useful for drawing UI elements
without needing to keep track of offsets.
Renders characters to a CanvasTerminal using normal fonts and text
drawing. Can draw any character supported by the supplied font. This
renderer works best if you keep the scale at 1 and instead adjust the pixel
size of the supplied font string based on the device pixel density.
Renders characters to a CanvasTerminal using bitmap glyphs. The renderer
must be supplied with a mapping between supported characters and the glyphs.
This renderer works best when supplied with an appropriate pixel density scale.
Each Layer in the UserInterface can manage different aspects of the
overall game. For instance, one layer for the game map, one layer for an
information side panel, another layer for each different pop-up, etc. Layers
can be opaque or transparent to control how far down the UserInterface's
stack of Layers the game gets rendered.
Modal user interface that maintains a stack of UI Layers and writes them
to a Terminal. The UI manages the main game loop and renders as
efficiently as possible based on the state of the Layer stack.