mirror of
https://github.com/ghostty-org/ghostty.git
synced 2026-04-06 07:38:21 +00:00
The GRAPHEMES_BUF data kind previously required a double pointer (pointer to a uint32_t*) because the OutType was [*]u32, making the typed out parameter *[*]u32. Change OutType to u32 so that callers pass a plain uint32_t* buffer directly, which is the natural C calling convention. The implementation casts the out pointer to [*]u32 internally to write into the buffer. The STYLE data kind read directly from the render state style array without checking whether the cell actually had non-default styling. The style data is undefined for unstyled cells, so this caused a panic on a corrupt enum value when the caller read the style of an unstyled cell. Now check cell.hasStyling() first and return the default style for unstyled cells. Expand the c-vt-render example to exercise dirty tracking, color retrieval, cursor state, row/cell iteration with style resolution, and dirty state reset. Break the example into six doxygen snippet regions and reference them from render.h.
Examples
Standalone projects demonstrating the Ghostty library APIs.
The directories starting with c- use the C API and the directories
starting with zig- use the Zig API.
Every example can be built and run using zig build and zig build run
from within the respective example directory.
Even the C API examples use the Zig build system (not the language) to
build the project.
Running an Example
cd example/<dir>
zig build run