diff options
| author | Gabriel Schneider <[email protected]> | 2026-08-17 16:12:56 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-08-18 23:45:04 -0300 |
| commit | 31fece62f56aa2311e2325de83659edbc9e641db (patch) | |
| tree | 13eee1e542d9670ad3fb7badad353265121d668f /docs/design.typ | |
| parent | 1551e409c31992437cb2fa864f576d45c8433801 (diff) | |
| download | pardes-31fece62f56aa2311e2325de83659edbc9e641db.tar.gz pardes-31fece62f56aa2311e2325de83659edbc9e641db.zip | |
animation: core publishes transition records; gui evaluates via shaders, tty over grid cells
Diffstat (limited to 'docs/design.typ')
| -rw-r--r-- | docs/design.typ | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/docs/design.typ b/docs/design.typ index 8dd14cdf..1c50cfde 100644 --- a/docs/design.typ +++ b/docs/design.typ @@ -178,24 +178,30 @@ weight. their easing, exact endpoint progress, stable per-cell noise, and a POD track. The core detects opening/moving rectangles when it commits layout and publishes only active tracks. It retains the last successfully presented canonical grid -and a semantic old/new cell mask; unused grapheme bytes do not manufacture a +and a typed old/new cell diff; unused grapheme bytes do not manufacture a change. A separate dense closing-track list is presentation-only state for a pane whose functional lifetime has already ended. Pointer input inverts the presented slide/zoom/vertical rectangle back to the canonical grid, lets unchanged dissolve/ASCII cells through immediately, and rejects closing pixels, so pixels and gestures cannot disagree during a transition. -TTY copies the canonical `Surface` grid into a compositor scratch grid, clears +Pardes core first composes each ASCII-qualified diff by incrementing or +decrementing its printable byte. Short walks move once per frame; longer walks +use integer ease-out skips and finish within twelve movements. Style-only and +non-ASCII changes pass through, and every backend receives the same +presentation cells. +TTY copies that `Surface` grid into a compositor scratch grid, clears slide/zoom destinations, then paints moving, opening, and closing panels in order. Cleared geometry uses the theme page color when it is explicit and the host terminal default only for transparent themes, so a light theme cannot flash a dark gap. Slide/zoom change the copied rectangle. Dissolve changes only diff -cells from their old value to their new value; ASCII takes the same cells -through punctuation; vertical raises only an opening or frozen closing pane +cells from their old value to their new value; vertical raises only an opening +or frozen closing pane inside its own clip. SDL supplies old/new glyph data, diff flags, final/presented boxes, and effect parameters to the glyph and native-image -shaders. macOS passes the same records across its plain C ABI and composites +shaders. Pixel attachments bypass ASCII because they have no character byte. +macOS passes the same records across its plain C ABI and composites old/new panel images in Metal/Core Image. Scene `Crt`, `Ripple`, and `Glitch` bits share one full-window pass in each native GUI. DOM web is a separate platform, not a shader GUI: retaining selectable HTML/CSS is more @@ -218,7 +224,7 @@ Pardes rects: [16]Rect // where each pane landed, this frame panel_tracks: [16]?Track // live panes, serial-guarded closing_panel_tracks: [16]Track // dense visual tombstones, no pane owner - presented_cells + changed_cells // acknowledged baseline + semantic diff + presented_cells + panel_cell_diffs // acknowledged baseline + semantic diff effects: [4096]Effect + head/len // a fixed ring Pane |
