You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bump vendored raylib to 6.0 to fix Wayland rendering
raylib 5.5 plus the bundled GLFW 3.4 produced a black screen on
Wayland: GetScreenWidth reported the monitor size while
GetRenderWidth stayed at the initial InitWindow size, so the blit
destination mapped outside the GL viewport. Audio and game logic
ran fine, only rendering was broken. Yesterday's cherry-pick of
upstream PR #4909 (GLFW_SCALE_FRAMEBUFFER=FALSE) only addressed a
narrow non-HiDPI corner case and did not fix the underlying
screen/render desync, confirmed by a fresh trace log on the patched
5.5 build.
raylib 6.0 (released 2026-04-23) ships a complete fix as part of
the REDESIGNED Fullscreen modes and High-DPI content scaling work.
The Wayland-specific path lives in src/platforms/rcore_desktop_glfw.c
(PR #5564, merged 2026-02-17), gated on
glfwGetPlatform() == GLFW_PLATFORM_WAYLAND. Upstream tested the new
window system on Linux X11/Wayland, Windows, and macOS with multiple
monitors and 4K resolutions.
Changes:
- engine/vendor/raylib/ replaced wholesale with the raylib 6.0
source subset (src/, cmake/, CMakeLists.txt, CMakeOptions.txt,
LICENSE, raylib.pc.in, README.md), sha256
2b3ee1e2120c7a0796b33062c7e9a694dd8a8caa56a96319ac8c8ecf54a90d0b.
- Both 5.5-era patches dropped, both absorbed upstream:
PR #4671 (Android shared-linker -Wl,--no-undefined strip) is in
cmake/LibraryConfigurations.cmake at lines 84-89.
PR #4909 + PR #5564 (Wayland framebuffer scaling) are in
src/platforms/rcore_desktop_glfw.c.
recipes/raylib/patches/ removed entirely. Provenance in
engine/vendor/raylib/SLEIPNER_MODIFICATIONS.md.
- raylib 6.0's CMakeLists.txt requires CMake 3.25 or higher. Android
side bumped from CMake 3.22.1 to 3.31.4 (highest available in
androidenv): flake.nix cmakeVersions and
android/app/build.gradle.kts externalNativeBuild version both
updated. The Android NDK 28 toolchain runs cleanly under cmake
3.31.4.
- Engine code at engine/src/main.c is unchanged. raylib 6.0's
redesigned ToggleBorderlessWindowed calls glfwSetWindowMonitor
with the monitor handle on entry and skips manual resize on
Wayland exit, so the existing init flow should drive the
framebuffer to the monitor size correctly. If the end-to-end
Wayland test shows otherwise, the engine init will be revisited
in a follow-up.
Verification:
- nix develop -c cmake --build build/Release: clean.
- nix develop -c ctest --test-dir build/Release: 25/25 pass.
- nix develop .#windows -c cmake --build build/windows: clean
(PLATFORM=SDL via SDL2 from pkgsSdl2.pkgsCross.mingwW64.SDL2).
- nix develop .#android -c ./gradlew assembleRelease: APK built
at android/app/build/outputs/apk/release/app-release.apk.
The runtime Wayland test is on the user's hardware.
References:
- https://github.com/raysan5/raylib/releases/tag/6.0
- raysan5/raylib#5564
- raysan5/raylib#4908
Assisted-by: Claude:claude-opus-4-7
[](https://github.com/raysan5/raylib/commits/master)
17
+
[](https://github.com/raysan5/raylib/commits/master)
InitWindow(800, 450, "raylib example - basic window");
65
66
66
67
while (!WindowShouldClose())
67
68
{
@@ -111,7 +112,7 @@ raylib has been developed on Windows platform using [Notepad++](https://notepad-
111
112
learning and docs
112
113
------------------
113
114
114
-
raylib is designed to be learned using [the examples](https://github.com/raysan5/raylib/tree/master/examples) as the main reference. There is no standard API documentation but there is a [**cheatsheet**](https://www.raylib.com/cheatsheet/cheatsheet.html) containing all the functions available on the library a short description of each one of them, input parameters and result value names should be intuitive enough to understand how each function works.
115
+
raylib is designed to be learned using [the examples](https://github.com/raysan5/raylib/tree/master/examples) as the main reference. There is no standard API documentation but there is a [**cheatsheet**](https://www.raylib.com/cheatsheet/cheatsheet.html) containing all the functions available on the library a short description of each one of them, input parameters and result value names should be intuitive enough to understand how each function works.
115
116
116
117
Some additional documentation about raylib design can be found in [raylib GitHub Wiki](https://github.com/raysan5/raylib/wiki). Here are the relevant links:
117
118
@@ -129,7 +130,8 @@ raylib is present in several networks and raylib community is growing everyday.
0 commit comments