paint_list_api 0.1.1

PaintList trait + engine-facing paint vocabulary for the polyglot netrender pipeline (PM-3 design).
Documentation
# netrender

A wgpu-native 2D renderer workspace. `netrender` ingests display lists and
produces pixels on top of [wgpu](https://wgpu.rs/) and
[vello](https://github.com/linebender/vello).

The repository began as a fork of Mozilla/Servo's WebRender; vello is now the
sole rasterizer. The pre-pivot WebRender-wgpu work survives only as
`archive/*` annotated tags (indexed in
[`netrender-notes/archive/2026-08-10_branch_archive.md`](netrender-notes/archive/2026-08-10_branch_archive.md)).

## Status (2026-08-12)

Stable within its scope; in-repo roadmap work is complete per the 2026-08-10
audit. Five member crates, all at 0.1.1, unpublished.

- The vello pivot is runtime-verified through the tile cache. Landed:
  layers and clips, gradients, box-shadows, nine-patch borders, variable
  fonts, backdrop and element CSS filters, scene capture/replay, hit
  testing, and the external-texture compositor seam.
- Tenancy boot seam landed 2026-08-10: one wgpu device shared between
  netrender and a tenant renderer (`TenantNeeds`, `boot_shared`/`boot_on`);
  first consumer is the sibling paredros repo.
- A paint-list regression corpus landed 2026-08-10: five fixtures, two of
  them real captures from genet's pipeline, replayed CPU-only against
  golden scene-op streams.
- Full workspace suite passed on macOS/Metal 2026-07-20, including system
  fonts, color emoji, and compositor plumbing.
- The two open items are gated outside this repo: the genet-side
  native-compositor adapter, and linear-light blending (blocked upstream on
  vello's GPU compute path; an opt-in canary test fires when it clears).

Crates: `netrender` (Scene vocabulary, rasterizer, tile cache, hit testing,
`Renderer`), `netrender_device` (device boot and pipelines), `netrender_text`
(parley-to-Scene glyph runs), `paint_list_api` (the engine-facing `PaintCmd`
vocabulary), `paint_list_render` (the translator into `Scene`). Notes and
plans live in `netrender-notes/`, indexed by
[`PROGRESS.md`](netrender-notes/PROGRESS.md).

## Use

The rendering leaf for the genet web-engine family and sibling projects:
engines emit a `PaintList` via `paint_list_api`, `paint_list_render`
translates it into a `Scene`, and `Renderer::render_vello` rasterizes it.
Consumed as a git dependency; it depends only on crates.io.

```sh
cargo build
cargo test    # many tests use the GPU; WGPU_BACKEND selects the backend

# Demo: renders a card grid to netrender/examples/output/demo_card_grid.png
cargo run -p netrender --example demo_card_grid
```

Optional features on `netrender`: `serde` (scene capture/replay) and
`linear-light-canary` (the upstream-gate test).

## License

Mozilla Public License 2.0, retained from the WebRender origin. All member
crates declare `license = "MPL-2.0"`.

---

*This README was generated by AI and will be edited by the author upon
release.*