Commit graph

8 commits

Author SHA1 Message Date
32ed60bc64
fix(win32): fix d3d11 gui build 2026-04-07 16:26:49 +02:00
9c66b19650 feat(gui): M1 shared core — extract src/gui/ and replace -Dgui with -Drenderer
Move shared types out of src/win32/ into a new src/gui/ package:
- xy.zig: generic XY(T) coordinate type
- xterm.zig: 256-color palette table (used by all GPU renderers)
- GlyphIndexCache.zig: glyph→atlas-slot mapping
- Cell.zig: Rgba8 and Cell extracted from d3d11.zig
- GlyphRasterizer.zig: comptime interface spec/checker

Update src/win32/ imports to point to ../gui/ and delete the
moved originals.

Replace the -Dgui bool option with -Drenderer enum { terminal, gui,
d3d11 }, wiring .d3d11 to the existing win32 DirectWrite path and
keeping build_options.gui = (renderer != .terminal) for tui.zig.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 23:22:31 +01:00
Jonathan Marler
5cc6724a07 win32 gui: center double-wide characters 2025-09-23 22:14:29 +02:00
Jonathan Marler
05b87b1406 finish win32 gui support for double-wide characters 2025-09-23 22:14:29 +02:00
Jonathan Marler
3e953981fe win32 gui: add Fonts type to get list of available fonts
Adds a Fonts type the render interface.  Here's an example of how
you could use this in `gui.zig`:

```zig
    const fonts = render.Fonts.init();
    defer fonts.deinit();
    const count = fonts.count();
    std.log.info("{} fonts", .{count});
    for (0..count) |font_index| {
        const name = fonts.getName(font_index);
        std.log.info("font {} '{}'", .{ font_index, std.unicode.fmtUtf16Le(name.slice()) });
    }
```
2025-01-17 16:19:19 +01:00
Jonathan Marler
7558a63819 win32 gui: decouple screen renderer from text renderer
I tried adding Andrew's TrueType renderer as an option, however, I
realized it doesn't work with zig 0.13.0, so it'll have to wait.

Until then here's the changes needed to decouple the screen/text rendering
which would make it easier to add more text renderers and just cleans
things up a bit more in general.
2025-01-15 21:16:51 -07:00
Jonathan Marler
27f256a7c5 switch to a monochrome texture for the font rendering 2025-01-13 22:15:11 -07:00
Jonathan Marler
5b83619f7a win32 gui: replace D2D renderer with D3d11 shader 2025-01-13 05:06:57 -07:00