Commit graph

9 commits

Author SHA1 Message Date
63a7f30559
fix(gui): update wio dependency 2026-04-11 15:20:49 +02:00
fa7b2e1e0a
feat(gui): add proper support for syncing modifiers on every event 2026-04-11 14:54:42 +02:00
bddf06c633
fix(gui): synthesize modifier release events on unfocus 2026-04-09 09:17:07 +02:00
32819ff952
fix(gui): gui mouse button mapping should match tui 2026-04-07 21:57:16 +02:00
875c42ad9e
fix(gui): map keys to vaxis Key constants 2026-03-30 20:54:34 +02:00
c353c92bc3
fix(gui): map uppercase/shifted codepoints when *only* the shift modifer is set 2026-03-30 20:46:59 +02:00
0a9842f34d
fix(gui): correct dispatching of mouse dragging events 2026-03-30 20:40:39 +02:00
9b0f40f155
fix(gui): don't map control characters 2026-03-30 20:32:39 +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