# Cauldron2D.Drafter v0.3.0 - Table of Contents > Puts a Cauldron2D surface on screen as a drafter widget. ## Pages - [Cauldron2D.Drafter](readme.md) - [Changelog](changelog.md) ## Modules - [Cauldron2D.Drafter.Chat](Cauldron2D.Drafter.Chat.md): Chat rooms for a served game: one process, any number of rooms, the last messages kept. - [Cauldron2D.Drafter.Client](Cauldron2D.Drafter.Client.md): The drafter application that puts a `Cauldron2D.World` in front of one player. - [Cauldron2D.Drafter.Client.Controllers](Cauldron2D.Drafter.Client.Controllers.md): The game controllers a client has seen, and which of its players each one plays. - [Cauldron2D.Drafter.Client.Gpu](Cauldron2D.Drafter.Client.Gpu.md): A client's graphics card: where its scenes are drawn, the `Cauldron2D.Drafter.Client.Stage` that draws them, and what it does to the game's scenes. - [Cauldron2D.Drafter.Client.Picture](Cauldron2D.Drafter.Client.Picture.md): How a game's picture (a scene's `:picture`) reaches a terminal that keeps images: the size it is drawn at, how each frame is encoded, and whether frames are double buffered. Options are a list, or a comma-separated string - [Cauldron2D.Drafter.Client.Screens](Cauldron2D.Drafter.Client.Screens.md): The screens `Cauldron2D.Drafter.Client` draws, as functions from its state to drafter elements: `title/1`, `lobby/1`, `settings/1`, `guide/1`, `page/2`, `world/1` and `summary/1`. - [Cauldron2D.Drafter.Client.Seats](Cauldron2D.Drafter.Client.Seats.md): The further players a client plays on the same machine, from the game's `local_seats/1`: each a player of the world with its own keys and its own controller. - [Cauldron2D.Drafter.Client.Settings](Cauldron2D.Drafter.Client.Settings.md): A player's settings: which keys do what, whether the pointer steers, how loud things are, how the world is drawn (`display`, and `drawing`: on the graphics card or not), and the game's own options (`Cauldron2D.Client.Game`'s `options/0`, its defaults under whatever was saved), and which player each game controller plays: `pads`, a map from a controller's name to a player number or `:none` (`Cauldron2D.Drafter.Client.Controllers`). `controllers` lists the controllers connected now, each `%{name, player}`; the client keeps it up to date for the game's menus to show, and it is not saved. - [Cauldron2D.Drafter.Client.Sprites](Cauldron2D.Drafter.Client.Sprites.md): Draw lists (`Cauldron2D.DrawList`) drawn by the graphics card, for a scene's `:gpu` function: each item becomes a `CauldronGPU.Sprite`, each picture a texture uploaded the first time it is drawn, and canvases are kept by name at the size last asked. - [Cauldron2D.Drafter.Client.Stage](Cauldron2D.Drafter.Client.Stage.md): A graphics card drawing a client's scenes: a `CauldronGPU.Host` renderer, offscreen for pictures shown in the pane or in a window of its own, and the cache a scene's `:gpu` function keeps between ticks. - [Cauldron2D.Drafter.Client.WindowKeys](Cauldron2D.Drafter.Client.WindowKeys.md): Turns a `CauldronGPU` window's key events into the events a drafter app gets from a terminal speaking the kitty keyboard protocol with key releases (`Drafter.Terminal.KittyKeyboard`): a press is the legacy `{:key, ...}` event followed by `{:key_down, key, modifiers}`, a repeat the legacy event alone, a release `{:key_up, key, modifiers}`. Shifted glyphs are those of a US keyboard. - [Cauldron2D.Drafter.Launcher](Cauldron2D.Drafter.Launcher.md): A setup page shown before a game starts. The player picks where the game's data is, how it is drawn, and anything else the game asks. Play saves the choices, and later runs start straight away with them. - [Cauldron2D.Drafter.Server](Cauldron2D.Drafter.Server.md): Serve a game over ssh, with its accounts, its web endpoint and its beacon. - [Cauldron2D.Drafter.Sprites](Cauldron2D.Drafter.Sprites.md): An atlas's art as stored kitty images, transmitted once and placed many times. - [Cauldron2D.Drafter.Surface](Cauldron2D.Drafter.Surface.md): A drafter widget that draws a `Cauldron2D` surface. - [Cauldron2D.Drafter.Surface.Patch](Cauldron2D.Drafter.Surface.Patch.md): Which parts of a projected picture have to be drawn again this frame. ## Mix Tasks - [mix cauldron.input](Mix.Tasks.Cauldron.Input.md): Measure drafter's input path from a `DRAFTER_TRACE` log.