Commit Graph

24 Commits

Author SHA1 Message Date
06a9d5d3ec improve kitty image data handling 2026-06-01 02:15:54 +02:00
6a3d5aa0b0 gitignore 2026-05-31 22:20:14 +02:00
5fdae1e7d5 avoid redundant copies in render cell marshalling
- store codepoints by reference in RenderCell (accessor still clones on
  read); the constructor clone double-allocated every cell and defeated
  the shared-empty-array optimization
- return rows as an unmodifiable view instead of List.copyOf; the list is
  a fresh local that never escapes
- preallocate row/cell lists to known rows/cols capacity

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 22:16:43 +02:00
Gregor Lohaus
db5ee5d20d reuse scratch buffers when marshalling render cells
Each per-field cell getter wrapped its own Arena.ofConfined() (a native
alloc/free plus session bookkeeping) to hold a few output bytes. With ~6
downcalls per cell that is tens of thousands of confined arenas per frame on a
full screen, which profiling in jprototerm pinned as ~6-7ms/frame and the
dominant render cost.

Allocate the scalar out-segments (int, bool, color, style) plus a growable
graphemes buffer once per snapshot in a single Scratch, confined to the
single marshalling thread, and thread it through the cell getters. Also drop a
redundant List.copyOf of the per-row cell list (RenderRow's constructor already
makes the immutable copy) and reuse a shared empty-codepoints array.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 21:36:21 +02:00
Gregor Lohaus
68121d50b5 styling stuff 2026-05-29 20:32:09 +02:00
Gregor Lohaus
5bbba354ab finalize 2026-05-29 19:40:30 +02:00
Gregor Lohaus
a534914a9b expose dirty on render state for incremental rendering 2026-05-29 13:33:58 +02:00
Gregor Lohaus
d558d554b3 bytecode v25 2026-05-29 12:29:36 +02:00
Gregor Lohaus
482305a1af fix reachability metadata drift 2026-05-29 10:31:44 +02:00
Gregor Lohaus
eeac1d20d6 fix reachability metadata drift 2026-05-29 09:16:10 +02:00
Gregor Lohaus
c90ed9f9a5 readme update 2026-05-28 13:48:30 +02:00
Gregor Lohaus
39468748fd kitty placeholder mapping 2026-05-28 13:19:27 +02:00
Gregor Lohaus
acdda73c02 scrollback, mouse 2026-05-28 02:13:47 +02:00
Gregor Lohaus
f44df36687 terminal effect callback 2026-05-28 01:30:18 +02:00
Gregor Lohaus
0852e58086 expose cursor from render state 2026-05-27 19:47:28 +02:00
Gregor Lohaus
0a875910a0 expose color from render state 2026-05-27 19:44:03 +02:00
Gregor Lohaus
91e9ce5bb4 expose render state 2026-05-27 19:38:17 +02:00
Gregor Lohaus
aee4954edf expose formatter 2026-05-27 18:50:45 +02:00
Gregor Lohaus
eea4384300 codex session id 2026-05-27 15:41:39 +02:00
Gregor Lohaus
c077bcc6c0 everything 2026-05-27 14:56:04 +02:00
Gregor Lohaus
ff5c4f4ff9 kitty test 2026-05-27 14:44:19 +02:00
Gregor Lohaus
5285fb68c9 kitty graphics support 2026-05-27 14:33:41 +02:00
Gregor Lohaus
a03bc2ec48 graal conf 2026-05-27 14:11:20 +02:00
Gregor Lohaus
be0c0bb321 wip 2026-05-27 14:04:26 +02:00