Commit graph

13 commits

Author SHA1 Message Date
6faea2ef02
refactor(gui): improve hidpi scaling support 2026-04-01 10:39:20 +02:00
f484ea0b57
fix(gui): add pixel offsets to scroll events 2026-04-01 10:10:18 +02:00
45db14f894
refactor(gui): clean-up pixel to cell coordinate conversions 2026-04-01 10:08:35 +02:00
ce85a73063
fix(gui): implement horizontal scrolling 2026-04-01 10:08:04 +02:00
50d9773956
fix(gui): only encode shifted codepoints if shift is active 2026-03-30 21:57:50 +02:00
932b640271
fix(gui): fix encoding of base and shifted key codes 2026-03-30 21:37:31 +02:00
6784797078
fix(gui): drop button press events if we also have text input 2026-03-30 21:26:20 +02:00
b1b50b7ff0
feat(gui): clipboard, title, cursor, attention 2026-03-30 21:17:27 +02:00
273be78055
fix(gui): fix shutdown hang 2026-03-30 20:58:52 +02:00
0a9842f34d
fix(gui): correct dispatching of mouse dragging events 2026-03-30 20:40:39 +02:00
7fc2113b8a
feat(gui): implement double-wide glyph support 2026-03-30 19:56:54 +02:00
4291ccf2c5
fix(gui): resolve crashes and glyph rendering bugs from M3 smoke test 2026-03-30 00:27:24 +02:00
39b482b2e0
feat(gui): M2 - sokol_gfx GPU backend initialised from wio window
Implements milestone 2 of the wio+sokol_gfx cross-platform GUI renderer:

- build.zig.zon: add wio and sokol-zig as lazy path dependencies
- build.zig: wire -Drenderer=gui - creates modules for gpu, app, and the
  stub rasterizer; links sokol_clib against system GL/X11/Xi/Xcursor/ALSA
  (requires: libgl-dev libx11-dev libxi-dev libxcursor-dev libasound2-dev)
- src/gui/gpu/builtin.glsl.zig: hand-crafted GLCORE ShaderDesc with a
  full-screen-quad vertex stage and a cell-grid fragment stage; Y-flip via
  row_count*cell_size_y; FsParams as 4 INT uniforms; RGBA32UI cell texture
  and R8 glyph-atlas texture with NONFILTERING samplers
- src/gui/gpu/gpu.zig: sokol_gfx backend mirroring the d3d11 backend;
  TRIANGLE_STRIP pipeline, CPU-side glyph atlas shadow, per-frame cell
  texture update via sg.updateImage
- src/gui/rasterizer/stub.zig: blank-glyph stub rasterizer for M2 testing
- src/gui/wio/app.zig: wio event loop + thespian bridge; creates a core
  OpenGL 3.3 context, calls sg.setup/gpu.init, sends RDR messages for
  WindowCreated/Resize/keyboard/mouse events, renders on screen_pending
- src/gui/wio/input.zig: wio Button → Flow codepoint/mouse-button mapping
- src/renderer/gui/renderer.zig: standard renderer interface consumed by
  tui.zig; dispatches RDR events, delegates font/cursor/clipboard to app
2026-03-29 19:04:52 +02:00