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
This commit is contained in:
parent
9c66b19650
commit
39b482b2e0
8 changed files with 1634 additions and 3 deletions
|
|
@ -42,6 +42,14 @@
|
|||
.hash = "zigwin32-25.0.28-preview-AAAAAICM5AMResOGQnQ85mfe60TTOQeMtt7GRATUOKoP",
|
||||
.lazy = true,
|
||||
},
|
||||
.wio = .{
|
||||
.path = "../flow-deps/wio",
|
||||
.lazy = true,
|
||||
},
|
||||
.sokol = .{
|
||||
.path = "../flow-deps/sokol-zig",
|
||||
.lazy = true,
|
||||
},
|
||||
.diffz = .{
|
||||
.url = "git+https://github.com/ziglibs/diffz.git#fbdf690b87db6b1142bbce6d4906f90b09ce60bb",
|
||||
.hash = "diffz-0.0.1-G2tlIezMAQBwGNGDs7Hn_N25dWSjEzgR_FAx9GFAvCuZ",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue