Skip to content

Add native Wayland GL3 backend#961

Open
Third-Thing wants to merge 7 commits into
mikke89:masterfrom
Third-Thing:wayland_gl3
Open

Add native Wayland GL3 backend#961
Third-Thing wants to merge 7 commits into
mikke89:masterfrom
Third-Thing:wayland_gl3

Conversation

@Third-Thing

Copy link
Copy Markdown

Summary

  • Add a native Wayland platform backend with EGL and OpenGL 3 rendering.
  • Add CMake integration for RMLUI_BACKEND=Wayland_GL3, including Wayland protocol generation.
  • Add keyboard input, pointer input, cursors, window resize/close handling, and key repeat.
  • Document Wayland_GL3 in the backend tables.

Known limitations

  • Clipboard support is process-local only, not integrated with the Wayland selection protocol.
  • High DPI/output scale handling is not implemented yet.
  • Touch input is not implemented.
  • Scroll handling currently uses basic axis values, not axis_value120.

Clipboard support will be addressed in the next PR.
No high DPI or touch screen is available for testing, so those are left to concerned parties.

Testing

  • Configured with RMLUI_BACKEND=Wayland_GL3.
  • Built Wayland backend and samples.
  • Manually tested keyboard input, modifiers, Caps Lock, key repeat, and focus-loss behavior.
  • Manually tested mouse clicks, drags, scrolls, hover states and shape changes.
  • Manually tested window resizing, minimizing, closing, and multi-desktop pinning.

Tested on:

openSUSE Leap 16
KDE Plasma 6.4.2 (Wayland)
i5-4690K + NVIDIA GTX 1050 ti

@Third-Thing

Copy link
Copy Markdown
Author

The build failures appear to be related to existing code relative to changes in the CI environment (macos-15-arm64 → macos-26-arm64), not this PR's changes.

  • AGL/agl.h is missing on the newer macOS/Xcode SDK. That is existing GL2 macOS shell code, unrelated to Wayland.
  • Homebrew behavior changed: on the older run, brew install sdl2 installed actual sdl2 and CMake found SDL2_image. On the new run, Homebrew installs sdl2-compat plus sdl3, so CMake detects SDL3 and then fails because the workflow installed sdl2_image, not sdl3_image.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant