summaryrefslogtreecommitdiffhomepage
path: root/packages/kernel/src/kernel.cpp
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-15 20:04:03 +0900
committerAdam Malczewski <[email protected]>2026-06-15 20:04:03 +0900
commit143cb713b685a9089e85c90a932fb79efa606dc6 (patch)
tree42958170e49eedca587c012717c12bc4021880c1 /packages/kernel/src/kernel.cpp
parentdb9753e6f42e43c08c43b848bc865aae97aa1655 (diff)
downloadunbox-143cb713b685a9089e85c90a932fb79efa606dc6.tar.gz
unbox-143cb713b685a9089e85c90a932fb79efa606dc6.zip
kernel: screenshot protocols + arbitrary-image decoding + input-transparent surfaces
Three additive, kernel-internal capabilities (no extension-facing signature changes beyond the documented UiSurfaceSpec field + SurfaceElement-unrelated probes): - Screenshots (grim): create wlr_screencopy_manager_v1 + wlr_xdg_output_manager_v1 in init() alongside the existing compositor/data-device globals (policy-free plumbing; wlroots wires them to the kernel-owned outputs/renderer). The captured image is the standard wlr_scene_output_commit composite, so RML-composited documents (scene-buffer nodes) are captured correctly. wlr.hpp gains the two headers (static-blanking re-audited inert). - Arbitrary raster image decode: vendor stb_image (single-header, public domain; warnings isolated to its own warning_level=0 TU) and extend the RMLUi RenderInterface LoadTexture (was uncompressed-TGA-only) to decode PNG/JPEG/BMP/ GIF/TGA via stbi_load_from_memory (RGBA, no BGR swizzle), falling back to the legacy TGA path. A SubstrateSystemInterface JoinPath override stops RmlUi stripping the leading '/' of an absolute source during URL resolution, so both <img src='/abs'> and decorator: image('/abs') load the same file. Deterministic ui_pixel readback tests (<img> + decorator paths, red/blue PNG fixtures). - input-transparent ui surfaces: UiSurfaceSpec gains 'bool input_transparent' (default false). When true the surface still composites but is skipped by the press-ownership hit test, so it never steals pointer/touch from windows above it -- required for a full-screen background (wallpaper). Deterministic seam test proves a transparent surface does not consume a press while an opaque one does.
Diffstat (limited to 'packages/kernel/src/kernel.cpp')
0 files changed, 0 insertions, 0 deletions