• v3.0.1 3be310ade6

    Split the keyboard onto its own translucent OpenXR quad
    build / build (push) Successful in 1m52s

    matthias released this 2026-08-14 04:43:44 +00:00 | 4 commits to master since this release

    Expand the on-screen keyboard to a full US layout (letters, digits,
    punctuation, Shift layer, Tab, arrows, F1-F12, one-shot Ctrl/Alt
    modifiers), make it a persistent, movable, closeable panel via a
    title-bar drag handle, and lower its opacity.

    Previously the keyboard was just a second panel swapped into the same
    quad as the menu launcher, which made the launcher translucent too and
    made the keyboard and menu mutually exclusive. Extract the shared
    swapchain/JNI/touch-dispatch plumbing into two generic, reusable
    modules - xr_swapchain.c (swapchain + per-image FBO setup) and
    xr_overlay.c (an off-screen Android View rendered into its own OpenXR
    quad, hit-tested via a laser pointer) - and make the menu launcher and
    keyboard two independent XrOverlay instances instead of one. The
    controller's menu button now only opens/closes the launcher; the
    launcher's "Keyboard" button only opens the keyboard - so the keyboard
    can stay up while picking something from the menu, and only the
    keyboard's own Close button hides it.

    xr_menu.c/.h are gone, fully absorbed into xr_overlay.c. On the Java
    side, OverlayPanel.java carries the shared off-screen-render/touch/
    cursor plumbing that MenuOverlay and the new KeyboardOverlay both
    subclass.

    Downloads