# `CauldronGPU.Bsp.Pictures`
[🔗](https://github.com/jaman/cauldron/blob/v0.3.3/cauldron_gpu/lib/cauldron_gpu/bsp/pictures.ex#L2)

A BSP world's textures uploaded as RGBA: the base picture of each, and for a `:quake`
world a glow picture holding only its full-bright colours (palette 224 and up) when it
has any. Colour 255 of a `:masked` texture is see-through.

# `entry`

```elixir
@type entry() :: %{
  base: CauldronGPU.Handle.t(),
  glow: CauldronGPU.Handle.t() | nil,
  kind: Cauldron3D.Bsp.kind()
}
```

# `t`

```elixir
@type t() :: tuple()
```

# `get`

```elixir
@spec get(t(), non_neg_integer()) :: entry()
```

The uploaded pictures of texture `index`.

# `handles`

```elixir
@spec handles(t()) :: [CauldronGPU.Handle.t()]
```

Every handle held.

# `upload`

```elixir
@spec upload(CauldronGPU.Target.t(), Cauldron3D.Bsp.t(), binary(), :linear | :nearest) ::
  t()
```

Uploads every texture of `bsp`; `palette` serves textures without their own.

---

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