# `CauldronGPU.Canvas`
[🔗](https://github.com/jaman/cauldron/blob/v0.3.3/cauldron_gpu/lib/cauldron_gpu/canvas.ex#L1)

A picture the renderer draws into: `width` × `height` RGBA pixels kept on the card. A
canvas is a texture, so its handle can be drawn by sprites, warped by a column layer,
shown as the overlay or used by a material. It starts transparent.

`filter` is how it is sampled where it is drawn: `:nearest` (the default) or `:linear`.

    canvas = CauldronGPU.canvas(gpu, %CauldronGPU.Canvas{width: 320, height: 200})

# `t`

```elixir
@type t() :: %CauldronGPU.Canvas{
  filter: :nearest | :linear,
  height: pos_integer(),
  width: pos_integer()
}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
