docs: describe Kitty graphics subset
- commit
- d7da5a257bf6bc82d0c32735de3cc53159630e9a
- author
- brice · · 2026-08-20 22:26 UTC
- parent
- 024b0ea
- signature
- GPG Verified
CD88F9E564E0102646FB6077A1A07C7C7C3E349D· arch-gpg Verified for the committer email
1 file · +18 -0
M README.md +18 -0
| @@ -15,6 +15,11 @@ The `ansi` package turns core frames and damage into transactional ANSI output. | |||
| 15 | 15 | or application dependencies. | |
| 16 | 16 | - `github.com/bnema/vev-vt/ansi` is the concrete ANSI output package. It consumes | |
| 17 | 17 | core frames and damage; it does not define a renderer-backend interface. | |
| 18 | + | - `github.com/bnema/vev-vt/graphics` owns bounded renderer-neutral raster assets, | |
| 19 | + | sparse placements, clipping fragments, and immutable scene snapshots. It has no | |
| 20 | + | Kitty, ANSI, VT-policy, or transport dependency. | |
| 21 | + | - `github.com/bnema/vev-vt/protocol/kittygraphics` parses bounded Kitty graphics | |
| 22 | + | APC commands and translates the supported static/direct subset into `graphics`. | |
| 18 | 23 | ||
| 19 | 24 | ## Ownership contract | |
| 20 | 25 | ||
| @@ -40,6 +45,19 @@ used only by the test suite. Keep the public v0.x API and byte formats immutable | |||
| 40 | 45 | once released; behavior changes require explicit versioning and compatibility | |
| 41 | 46 | evidence. | |
| 42 | 47 | ||
| 48 | + | ## Kitty graphics subset | |
| 49 | + | ||
| 50 | + | The VT accepts bounded static direct transmissions used by current | |
| 51 | + | `kitten icat --transfer-mode=stream`: PNG, RGB, and RGBA assets; transmit, | |
| 52 | + | transmit-and-display, place, query, and supported delete operations; chunked | |
| 53 | + | Base64 uploads; source rectangles; cell extents; pixel offsets; z-index; and | |
| 54 | + | cursor movement policy. Assets and decoded pixels are bounded by explicit scene | |
| 55 | + | and parser limits. File, temporary-file, shared-memory, animation, composition, | |
| 56 | + | relative placement, and Unicode-placeholder commands remain unsupported. | |
| 57 | + | ||
| 58 | + | `Screen` allocates graphics state only after a Kitty APC. Graphics snapshots are | |
| 59 | + | separate from cells and history bytes; VTH3 remains text/history-only. | |
| 60 | + | ||
| 43 | 61 | ## Checks | |
| 44 | 62 | ||
| 45 | 63 | ```sh | |
| @@ -15,6 +15,11 @@ The `ansi` package turns core frames and damage into transactional ANSI output. | |||||
| 15 | or application dependencies. | 15 | or application dependencies. | ||
| 16 | - `github.com/bnema/vev-vt/ansi` is the concrete ANSI output package. It consumes | 16 | - `github.com/bnema/vev-vt/ansi` is the concrete ANSI output package. It consumes | ||
| 17 | core frames and damage; it does not define a renderer-backend interface. | 17 | core frames and damage; it does not define a renderer-backend interface. | ||
| 18 | + | - `github.com/bnema/vev-vt/graphics` owns bounded renderer-neutral raster assets, | |||
| 19 | + | sparse placements, clipping fragments, and immutable scene snapshots. It has no | |||
| 20 | + | Kitty, ANSI, VT-policy, or transport dependency. | |||
| 21 | + | - `github.com/bnema/vev-vt/protocol/kittygraphics` parses bounded Kitty graphics | |||
| 22 | + | APC commands and translates the supported static/direct subset into `graphics`. | |||
| 18 | 23 | ||||
| 19 | ## Ownership contract | 24 | ## Ownership contract | ||
| 20 | 25 | ||||
| @@ -40,6 +45,19 @@ used only by the test suite. Keep the public v0.x API and byte formats immutable | |||||
| 40 | once released; behavior changes require explicit versioning and compatibility | 45 | once released; behavior changes require explicit versioning and compatibility | ||
| 41 | evidence. | 46 | evidence. | ||
| 42 | 47 | ||||
| 48 | + | ## Kitty graphics subset | |||
| 49 | + | ||||
| 50 | + | The VT accepts bounded static direct transmissions used by current | |||
| 51 | + | `kitten icat --transfer-mode=stream`: PNG, RGB, and RGBA assets; transmit, | |||
| 52 | + | transmit-and-display, place, query, and supported delete operations; chunked | |||
| 53 | + | Base64 uploads; source rectangles; cell extents; pixel offsets; z-index; and | |||
| 54 | + | cursor movement policy. Assets and decoded pixels are bounded by explicit scene | |||
| 55 | + | and parser limits. File, temporary-file, shared-memory, animation, composition, | |||
| 56 | + | relative placement, and Unicode-placeholder commands remain unsupported. | |||
| 57 | + | ||||
| 58 | + | `Screen` allocates graphics state only after a Kitty APC. Graphics snapshots are | |||
| 59 | + | separate from cells and history bytes; VTH3 remains text/history-only. | |||
| 60 | + | ||||
| 43 | ## Checks | 61 | ## Checks | ||
| 44 | 62 | ||||
| 45 | ```sh | 63 | ```sh | ||