From 1129d42b48d985340b181f05b162c1ea30b07caa Mon Sep 17 00:00:00 2001 From: luphi Date: Wed, 19 Aug 2026 10:53:56 -0700 Subject: [PATCH 01/12] Mostly rewrote GetPrevDirectoryPath() to correct its behavior in a few cases (#6073) --- src/rcore.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/rcore.c b/src/rcore.c index dd60ab731..9aadce1e4 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -2583,19 +2583,27 @@ const char *GetPrevDirectoryPath(const char *dirPath) { static char prevDirPath[MAX_FILEPATH_LENGTH] = { 0 }; memset(prevDirPath, 0, MAX_FILEPATH_LENGTH); - int dirPathLength = (int)strlen(dirPath); - if (dirPathLength <= 3) snprintf(prevDirPath, MAX_FILEPATH_LENGTH, "%s", dirPath); - - for (int i = (dirPathLength - 1); (i >= 0) && (dirPathLength > 3); i--) + const int lastIndex = (int)strlen(dirPath) - 1; + bool isFile = IsPathFile(dirPath); + for (int i = lastIndex; i >= 0; i--) { + // If the character is a path separator. if ((dirPath[i] == '\\') || (dirPath[i] == '/')) { - // Check for root: "C:\" or "/" - if (((i == 2) && (dirPath[1] ==':')) || (i == 0)) i++; + // If this character is a leading '/' (e.g. the '/' in "/usr") or + // part of a drive root (e.g. "C:\"), include it with the result. + if ((i == 0) || ((i == 2) && (dirPath[1] == ':'))) i += 1; + // If this character is a trailing path separator (e.g. the last + // '/' in "/usr/bin/" or the last '\' in "C:\raylib\"), continue. + else if (i == lastIndex) continue; - memcpy(prevDirPath, dirPath, i); - break; + if (!isFile) + { + memcpy(prevDirPath, dirPath, i); + break; + } + else isFile = false; } } From 47c8e897ce99fd1ba8c81514c9694ecbe131b656 Mon Sep 17 00:00:00 2001 From: Austin W Smith Date: Wed, 19 Aug 2026 11:02:32 -0700 Subject: [PATCH 02/12] [rcore][GLFW] Fix `borderless-windowed` mode being always on top (#5868) * Fix borderless fullscreen always on top Don't pass a monitor to glfwSetWindowMonitor(). This avoids setting the flag which keeps the window always on top. * Update for borderless-windowed always on top bug Only apply the fix for Windows OS, since that seems to be the only platform with the issue. --- src/platforms/rcore_desktop_glfw.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/platforms/rcore_desktop_glfw.c b/src/platforms/rcore_desktop_glfw.c index 22bd6b4e2..ba87b8049 100644 --- a/src/platforms/rcore_desktop_glfw.c +++ b/src/platforms/rcore_desktop_glfw.c @@ -287,8 +287,14 @@ void ToggleBorderlessWindowed(void) CORE.Window.screen.height = mode->height; // Set screen position and size + #if defined(_WIN32) + // NOTE: To prevent the fullscreen window from always staying on top, don't pass a monitor at this point. + glfwSetWindowMonitor(platform.handle, NULL, CORE.Window.position.x, CORE.Window.position.y, + CORE.Window.screen.width, CORE.Window.screen.height, mode->refreshRate); + #else glfwSetWindowMonitor(platform.handle, monitors[monitor], CORE.Window.position.x, CORE.Window.position.y, CORE.Window.screen.width, CORE.Window.screen.height, mode->refreshRate); + #endif // Refocus window glfwFocusWindow(platform.handle); From d75a6589f0b3edb9e1a19a85a870ce70cee7048c Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 19 Aug 2026 20:25:01 +0200 Subject: [PATCH 03/12] REVIEWED: `GetWindowPosition()` #5932 --- src/platforms/rcore_desktop_glfw.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/platforms/rcore_desktop_glfw.c b/src/platforms/rcore_desktop_glfw.c index ba87b8049..c6a210f64 100644 --- a/src/platforms/rcore_desktop_glfw.c +++ b/src/platforms/rcore_desktop_glfw.c @@ -1030,6 +1030,8 @@ const char *GetMonitorName(int monitor) // Get window position XY on monitor Vector2 GetWindowPosition(void) { + glfwGetWindowPos(platform.handle, &CORE.Window.position.x, &CORE.Window.position.y); + return (Vector2){ (float)CORE.Window.position.x, (float)CORE.Window.position.y }; } From f9e2215c49af43a48801dcf6ffb8d0d0fe18dba0 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 19 Aug 2026 21:17:17 +0200 Subject: [PATCH 04/12] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 7fc704e25..474d6f9f6 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,10 @@ features - Bindings to [+70 programming languages](https://github.com/raysan5/raylib/blob/master/BINDINGS.md)! - **Free and open source** +limitations +----------- + - No support for rendering during resizing or window movement on windows platforms + basic example -------------- This is a basic raylib example, it creates a window and draws the text `"Congrats! You created your first window!"` in the middle of the screen. Check this example [running live on web here](https://www.raylib.com/examples/core/loader.html?name=core_basic_window). From af3045377a4faf2d8a5125feed88cdd3f375f1ca Mon Sep 17 00:00:00 2001 From: cladxv <67289908+RobertFlexx@users.noreply.github.com> Date: Thu, 20 Aug 2026 07:25:23 -0700 Subject: [PATCH 05/12] add raystar binding to BINDINGS.md (#6075) --- BINDINGS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/BINDINGS.md b/BINDINGS.md index b54ec3527..9ed03a6bb 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -36,6 +36,7 @@ Some people ported raylib to other languages in the form of bindings or wrappers | [raylib-elfscript](https://github.com/ohmtal/raylib-elfscript) | 6.0 | [ElfScript](https://github.com/ohmtal/ElfScript) | MIT | | [raylib-elle](https://github.com/acquitelol/elle/blob/rewrite/std/raylib.le) | **5.5** | [Elle](https://github.com/acquitelol/elle) | GPL-3.0 | | [raylib-factor](https://github.com/factor/factor/blob/master/extra/raylib/raylib.factor) | 5.5 | [Factor](https://factorcode.org) | BSD | +| [raystar](https://github.com/RobertFlexx/raystar) | **6.0** | [F*](https://www.fstar-lang.org/) | EPL-2.0 | | [raylib4fb](https://github.com/mudhairless/raylib4fb) | **6.0** | [FreeBASIC](https://www.freebasic.net) | Zlib | | [raylib-freebasic](https://github.com/WIITD/raylib-freebasic) | **5.0** | [FreeBASIC](https://www.freebasic.net) | MIT | | [raylib.f](https://github.com/cthulhuology/raylib.f) | **5.5** | [Forth](https://forth.com) | Zlib | From d7225acd8e3fe5f4e98011d7d639a45a8bd5c674 Mon Sep 17 00:00:00 2001 From: cladxv <67289908+RobertFlexx@users.noreply.github.com> Date: Fri, 21 Aug 2026 11:53:09 -0700 Subject: [PATCH 06/12] Add raymojo binding for Mojo language (#6076) --- BINDINGS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/BINDINGS.md b/BINDINGS.md index 9ed03a6bb..fe433b052 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -60,6 +60,7 @@ Some people ported raylib to other languages in the form of bindings or wrappers | [raylib-luajit](https://github.com/homma/raylib-luajit) | 5.5 | [Lua](http://www.lua.org) | MIT | | [raylib-luajit-generated](https://github.com/james2doyle/raylib-luajit-generated) | 5.5 | [Lua](http://www.lua.org) | MIT | | [raylib-matte](https://github.com/jcorks/raylib-matte) | 4.6-dev | [Matte](https://github.com/jcorks/matte) | **???** | +| [raymojo](https://github.com/RobertFlexx/raymojo) | **6.0** | [Mojo](https://www.modular.com/mojo) | GPLv3 | | [raymod](https://github.com/RobertFlexx/raymod) | **6.0** | [Modula-2](https://en.wikipedia.org/wiki/Modula-2) / [Modula-3](https://en.wikipedia.org/wiki/Modula-3) | Apache-2.0 | | [Raylib.nelua](https://github.com/AuzFox/Raylib.nelua) | **5.5** | [nelua](https://nelua.io) | Zlib | | [raylib-bindings](https://github.com/vaiorabbit/raylib-bindings) | 5.6-dev | [Ruby](https://www.ruby-lang.org/en) | Zlib | From 23033d1f1858e321ac837043e8ba482420627c70 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 21 Aug 2026 21:07:03 +0200 Subject: [PATCH 07/12] Update README.md --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 474d6f9f6..5820b8c9c 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,13 @@ features limitations ----------- - - No support for rendering during resizing or window movement on windows platforms + +raylib presents some limitation by design for code simplicity, some forks, alternatives and samples are available to overcome most of them but it's up to the user with those specific needs. + + - Single window with single OpenGL context by default, no multi-window support + - Window resize and move stops the rendering loop on platforms supporting a window + - Font rasterization has lower qualityt than alternatives using Freetype2, HarfBuzz or Slug + - Text drawing does not support RTL, ligatures or emojis basic example -------------- From f472c67bb2a816081876719fb9d354f8c5df06d9 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 21 Aug 2026 21:08:36 +0200 Subject: [PATCH 08/12] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5820b8c9c..74c105be3 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ raylib presents some limitation by design for code simplicity, some forks, alter - Single window with single OpenGL context by default, no multi-window support - Window resize and move stops the rendering loop on platforms supporting a window - - Font rasterization has lower qualityt than alternatives using Freetype2, HarfBuzz or Slug + - Font rasterization has lower quality than alternatives using `Freetype2`, `HarfBuzz` or `Slug` - Text drawing does not support RTL, ligatures or emojis basic example From 3b57140640c80dc4ce3e57fc7ca6e1c7a2fa439e Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 21 Aug 2026 21:11:29 +0200 Subject: [PATCH 09/12] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 74c105be3..37304bb09 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ features limitations ----------- -raylib presents some limitation by design for code simplicity, some forks, alternatives and samples are available to overcome most of them but it's up to the user with those specific needs. +raylib presents some limitation by design for code simplicity, some forks, alternatives and samples are available to overcome most of them but it's up to the users to modify the library for their specific needs. - Single window with single OpenGL context by default, no multi-window support - Window resize and move stops the rendering loop on platforms supporting a window From 86430c156c42ad4e39f04a6c50051af3c4da3e3d Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 21 Aug 2026 21:13:25 +0200 Subject: [PATCH 10/12] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 37304bb09..7f8714642 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,7 @@ raylib presents some limitation by design for code simplicity, some forks, alter - Window resize and move stops the rendering loop on platforms supporting a window - Font rasterization has lower quality than alternatives using `Freetype2`, `HarfBuzz` or `Slug` - Text drawing does not support RTL, ligatures or emojis + - `RenderTextures` are flipped vertically, as provided by OpenGL, it's up to user to draw then flipped on screen basic example -------------- From 6cceb2b873bcbae53f67f6db4810811892aa306e Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 21 Aug 2026 21:14:21 +0200 Subject: [PATCH 11/12] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7f8714642..81c234c1e 100644 --- a/README.md +++ b/README.md @@ -61,9 +61,9 @@ raylib presents some limitation by design for code simplicity, some forks, alter - Single window with single OpenGL context by default, no multi-window support - Window resize and move stops the rendering loop on platforms supporting a window + - `RenderTextures` are flipped vertically, as provided by OpenGL, it's up to user to draw then flipped to screen - Font rasterization has lower quality than alternatives using `Freetype2`, `HarfBuzz` or `Slug` - Text drawing does not support RTL, ligatures or emojis - - `RenderTextures` are flipped vertically, as provided by OpenGL, it's up to user to draw then flipped on screen basic example -------------- From abe23bf82dcab18a618067843aed4eec2b24ba97 Mon Sep 17 00:00:00 2001 From: William Date: Fri, 21 Aug 2026 12:14:57 -0700 Subject: [PATCH 12/12] [build] Updated examples/Makefile after testing on OSX (#6077) * Updated examples/Makefile after testing on OSX I may be wrong, but the best way to install ray lib is through home-brew, and I'd expect that that should be a search path for others. * Update Makefile Fixed issues --- examples/Makefile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/examples/Makefile b/examples/Makefile index 6590e9bd1..d22e685e6 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -18,7 +18,7 @@ # > PLATFORM_DESKTOP_RGFW (RGFW backend): # - Windows (Win32, Win64) # - Linux (X11 desktop mode) -# - macOS/OSX (x64, arm64 (not tested)) +# - macOS/OSX (x64, arm64) # - Others (not tested) # > PLATFORM_DESKTOP_WIN32 (native Win32): # - Windows (Win32, Win64) @@ -314,6 +314,9 @@ ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_GLFW) ifeq ($(PLATFORM_OS),BSD) LDFLAGS += -Lsrc -L$(RAYLIB_LIB_PATH) endif + ifeq ($(PLATFORM_OS),OSX) + LDFLAGS += -L/opt/homebrew/lib -L$(RAYLIB_LIB_PATH) + endif endif ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_SDL) ifeq ($(PLATFORM_OS),WINDOWS)