Files
ghostty/example/c-vt-render
Mitchell Hashimoto ad6e72ddc4 libghostty: add dedicated dirty row iteration + clear functions (#13852)
Add render state C APIs for iterating only rows that require a redraw
and for marking a completed frame clean in one call.

A one-row update in a 24-row viewport reduces dirty-row discovery from
50 calls to two, while cleanup becomes one call instead of O(N) of rows.

This lower call count is massive for environments where FFI is expensive
(Go, wasm).

The dirty next API outputs the viewport y because it jumps, unlike the
normal sequential next where its trivial for a caller to keep track.
2026-08-15 21:11:21 -07:00
..

Example: ghostty-vt Render State

This contains an example of how to use the ghostty-vt render-state API to create a render state, update it from terminal content, iterate rows and cells, read styles and colors, inspect cursor and row-local selection state, and manage dirty tracking.

This uses a build.zig and Zig to build the C program so that we can reuse a lot of our build logic and depend directly on our source tree, but Ghostty emits a standard C library that can be used with any C tooling.

Usage

Run the program:

zig build run