From d8861cc35fa3d173dcd3317ebb795ad2348e99a5 Mon Sep 17 00:00:00 2001 From: Thomas Anderson <5776225+CrackedPixel@users.noreply.github.com> Date: Thu, 26 Feb 2026 16:41:33 -0600 Subject: [PATCH 1/2] change defined() to 0/1 check (#5599) --- src/config.h | 4 ++-- src/platforms/rcore_desktop_glfw.c | 4 ++-- src/platforms/rcore_desktop_rgfw.c | 8 ++++---- src/platforms/rcore_template.c | 2 +- src/platforms/rcore_web.c | 4 ++-- src/platforms/rcore_web_emscripten.c | 4 ++-- src/rtextures.c | 10 +++++----- 7 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/config.h b/src/config.h index 1c45a1170..7bedd4f4c 100644 --- a/src/config.h +++ b/src/config.h @@ -85,11 +85,11 @@ // However, it can also reduce overall system performance, because the thread scheduler switches tasks more often #define SUPPORT_WINMM_HIGHRES_TIMER 1 #endif -#if !defined(SUPPORT_BUSY_WAIT_LOOP) && !SUPPORT_PARTIALBUSY_WAIT_LOOP +#if !SUPPORT_BUSY_WAIT_LOOP && !SUPPORT_PARTIALBUSY_WAIT_LOOP // Use busy wait loop for timing sync, if not defined, a high-resolution timer is set up and used #define SUPPORT_BUSY_WAIT_LOOP 0 // Disabled by default #endif -#if !defined(SUPPORT_PARTIALBUSY_WAIT_LOOP) && !SUPPORT_BUSY_WAIT_LOOP +#if !SUPPORT_PARTIALBUSY_WAIT_LOOP && !SUPPORT_BUSY_WAIT_LOOP // Use a partial-busy wait loop, in this case frame sleeps for most of the time, // but then runs a busy loop at the end for accuracy #define SUPPORT_PARTIALBUSY_WAIT_LOOP 1 diff --git a/src/platforms/rcore_desktop_glfw.c b/src/platforms/rcore_desktop_glfw.c index 79a94b08b..1e3ae2b45 100644 --- a/src/platforms/rcore_desktop_glfw.c +++ b/src/platforms/rcore_desktop_glfw.c @@ -2049,7 +2049,7 @@ static void MouseButtonCallback(GLFWwindow *window, int button, int action, int CORE.Input.Mouse.currentButtonState[button] = action; CORE.Input.Touch.currentTouchState[button] = action; -#if SUPPORT_GESTURES_SYSTEM && defined(SUPPORT_MOUSE_GESTURES) +#if SUPPORT_GESTURES_SYSTEM && SUPPORT_MOUSE_GESTURES // Process mouse events as touches to be able to use mouse-gestures GestureEvent gestureEvent = { 0 }; @@ -2084,7 +2084,7 @@ static void MouseCursorPosCallback(GLFWwindow *window, double x, double y) CORE.Input.Mouse.currentPosition.y = (float)y; CORE.Input.Touch.position[0] = CORE.Input.Mouse.currentPosition; -#if SUPPORT_GESTURES_SYSTEM && defined(SUPPORT_MOUSE_GESTURES) +#if SUPPORT_GESTURES_SYSTEM && SUPPORT_MOUSE_GESTURES // Process mouse events as touches to be able to use mouse-gestures GestureEvent gestureEvent = { 0 }; diff --git a/src/platforms/rcore_desktop_rgfw.c b/src/platforms/rcore_desktop_rgfw.c index d31f41e4d..178845f16 100755 --- a/src/platforms/rcore_desktop_rgfw.c +++ b/src/platforms/rcore_desktop_rgfw.c @@ -992,7 +992,7 @@ const char *GetClipboardText(void) return RGFW_readClipboard(NULL); } -#if defined(SUPPORT_CLIPBOARD_IMAGE) +#if SUPPORT_CLIPBOARD_IMAGE #if defined(_WIN32) #define WIN32_CLIPBOARD_IMPLEMENTATION #define WINUSER_ALREADY_INCLUDED @@ -1006,7 +1006,7 @@ const char *GetClipboardText(void) Image GetClipboardImage(void) { Image image = { 0 }; -#if defined(SUPPORT_CLIPBOARD_IMAGE) +#if SUPPORT_CLIPBOARD_IMAGE #if defined(_WIN32) unsigned long long int dataSize = 0; // moved into _WIN32 scope until other platforms gain support void *fileData = NULL; // moved into _WIN32 scope until other platforms gain support @@ -1142,7 +1142,7 @@ const char *GetKeyName(int key) // Register all input events void PollInputEvents(void) { -#if defined(SUPPORT_GESTURES_SYSTEM) +#if SUPPORT_GESTURES_SYSTEM // NOTE: Gestures update must be called every frame to reset gestures correctly // because ProcessGestureEvent() is just called on an event, not every frame UpdateGestures(); @@ -1408,7 +1408,7 @@ void PollInputEvents(void) default: break; } -#if defined(SUPPORT_GESTURES_SYSTEM) +#if SUPPORT_GESTURES_SYSTEM if (touchAction > -1) { // Process mouse events as touches to be able to use mouse-gestures diff --git a/src/platforms/rcore_template.c b/src/platforms/rcore_template.c index 87cd2e21e..45c150942 100644 --- a/src/platforms/rcore_template.c +++ b/src/platforms/rcore_template.c @@ -405,7 +405,7 @@ const char *GetKeyName(int key) // Register all input events void PollInputEvents(void) { -#if defined(SUPPORT_GESTURES_SYSTEM) +#if SUPPORT_GESTURES_SYSTEM // NOTE: Gestures update must be called every frame to reset gestures correctly // because ProcessGestureEvent() is just called on an event, not every frame UpdateGestures(); diff --git a/src/platforms/rcore_web.c b/src/platforms/rcore_web.c index 263db7fb8..5fd91eff6 100644 --- a/src/platforms/rcore_web.c +++ b/src/platforms/rcore_web.c @@ -1564,7 +1564,7 @@ static void MouseButtonCallback(GLFWwindow *window, int button, int action, int CORE.Input.Mouse.currentButtonState[button] = action; CORE.Input.Touch.currentTouchState[button] = action; -#if SUPPORT_GESTURES_SYSTEM && defined(SUPPORT_MOUSE_GESTURES) +#if SUPPORT_GESTURES_SYSTEM && SUPPORT_MOUSE_GESTURES // Process mouse events as touches to be able to use mouse-gestures GestureEvent gestureEvent = { 0 }; @@ -1605,7 +1605,7 @@ static void MouseMoveCallback(GLFWwindow *window, double x, double y) CORE.Input.Touch.position[0] = CORE.Input.Mouse.currentPosition; } -#if SUPPORT_GESTURES_SYSTEM && defined(SUPPORT_MOUSE_GESTURES) +#if SUPPORT_GESTURES_SYSTEM && SUPPORT_MOUSE_GESTURES // Process mouse events as touches to be able to use mouse-gestures GestureEvent gestureEvent = { 0 }; diff --git a/src/platforms/rcore_web_emscripten.c b/src/platforms/rcore_web_emscripten.c index ffaa38c27..995881233 100644 --- a/src/platforms/rcore_web_emscripten.c +++ b/src/platforms/rcore_web_emscripten.c @@ -1457,7 +1457,7 @@ static EM_BOOL EmscriptenMouseCallback(int eventType, const EmscriptenMouseEvent default: break; } -#if SUPPORT_GESTURES_SYSTEM && defined(SUPPORT_MOUSE_GESTURES) +#if SUPPORT_GESTURES_SYSTEM && SUPPORT_MOUSE_GESTURES // Process mouse events as touches to be able to use mouse-gestures GestureEvent gestureEvent = { 0 }; @@ -1529,7 +1529,7 @@ static EM_BOOL EmscriptenMouseMoveCallback(int eventType, const EmscriptenMouseE CORE.Input.Touch.position[0] = CORE.Input.Mouse.currentPosition; } -#if SUPPORT_GESTURES_SYSTEM && defined(SUPPORT_MOUSE_GESTURES) +#if SUPPORT_GESTURES_SYSTEM && SUPPORT_MOUSE_GESTURES // Process mouse events as touches to be able to use mouse-gestures GestureEvent gestureEvent = { 0 }; diff --git a/src/rtextures.c b/src/rtextures.c index 7cddcb3bc..2aef6f5a0 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -150,11 +150,11 @@ #endif #endif -#if (defined(SUPPORT_FILEFORMAT_DDS) || \ - defined(SUPPORT_FILEFORMAT_PKM) || \ - defined(SUPPORT_FILEFORMAT_KTX) || \ - defined(SUPPORT_FILEFORMAT_PVR) || \ - defined(SUPPORT_FILEFORMAT_ASTC)) +#if (SUPPORT_FILEFORMAT_DDS || \ + SUPPORT_FILEFORMAT_PKM || \ + SUPPORT_FILEFORMAT_KTX || \ + SUPPORT_FILEFORMAT_PVR || \ + SUPPORT_FILEFORMAT_ASTC) #if defined(__GNUC__) // GCC and Clang #pragma GCC diagnostic push From 05a34b09ea628dec0805379b5ef24182383a910b Mon Sep 17 00:00:00 2001 From: Maicon Santana Date: Thu, 26 Feb 2026 22:45:34 +0000 Subject: [PATCH 2/2] Swaping #pragma message with TRACELOG inside the clipboard_image function (#5596) Co-authored-by: Ray --- src/platforms/rcore_desktop_glfw.c | 13 +++++++++++-- src/platforms/rcore_desktop_rgfw.c | 11 ++++++++++- src/platforms/rcore_desktop_sdl.c | 18 +++++++++++++++++- src/raymath.h | 2 +- src/rcore.c | 16 ---------------- 5 files changed, 39 insertions(+), 21 deletions(-) diff --git a/src/platforms/rcore_desktop_glfw.c b/src/platforms/rcore_desktop_glfw.c index 1e3ae2b45..9d2cd018d 100644 --- a/src/platforms/rcore_desktop_glfw.c +++ b/src/platforms/rcore_desktop_glfw.c @@ -1049,7 +1049,10 @@ Image GetClipboardImage(void) Image image = { 0 }; #if SUPPORT_CLIPBOARD_IMAGE +#if SUPPORT_MODULE_RTEXTURES #if defined(_WIN32) + +#if SUPPORT_FILEFORMAT_BMP unsigned long long int dataSize = 0; void *bmpData = NULL; int width = 0; @@ -1059,10 +1062,16 @@ Image GetClipboardImage(void) if (bmpData == NULL) TRACELOG(LOG_WARNING, "Clipboard image: Couldn't get clipboard data."); else image = LoadImageFromMemory(".bmp", (const unsigned char *)bmpData, (int)dataSize); +#else + TRACELOG(LOG_WARNING, "WARNING: Enabling SUPPORT_CLIPBOARD_IMAGE requires SUPPORT_FILEFORMAT_BMP, specially on Windows"); +#endif // SUPPORT_FILEFORMAT_BMP #else TRACELOG(LOG_WARNING, "GetClipboardImage() not implemented on target platform"); -#endif -#endif +#endif // defined(_WIN32) +#else // !SUPPORT_MODULE_RTEXTURES + TRACELOG(LOG_WARNING, "Enabling SUPPORT_CLIPBOARD_IMAGE requires SUPPORT_MODULE_RTEXTURES to work properly"); +#endif // SUPPORT_MODULE_RTEXTURES +#endif // SUPPORT_CLIPBOARD_IMAGE return image; } diff --git a/src/platforms/rcore_desktop_rgfw.c b/src/platforms/rcore_desktop_rgfw.c index 178845f16..532371f35 100755 --- a/src/platforms/rcore_desktop_rgfw.c +++ b/src/platforms/rcore_desktop_rgfw.c @@ -1007,7 +1007,10 @@ Image GetClipboardImage(void) { Image image = { 0 }; #if SUPPORT_CLIPBOARD_IMAGE +#if SUPPORT_MODULE_RTEXTURES #if defined(_WIN32) + +#if SUPPORT_FILEFORMAT_BMP unsigned long long int dataSize = 0; // moved into _WIN32 scope until other platforms gain support void *fileData = NULL; // moved into _WIN32 scope until other platforms gain support @@ -1017,9 +1020,15 @@ Image GetClipboardImage(void) if (fileData == NULL) TRACELOG(LOG_WARNING, "Clipboard image: Couldn't get clipboard data"); else image = LoadImageFromMemory(".bmp", (const unsigned char *)fileData, dataSize); +#else + TRACELOG(LOG_WARNING, "WARNING: Enabling SUPPORT_CLIPBOARD_IMAGE requires SUPPORT_FILEFORMAT_BMP, specially on Windows"); +#endif // SUPPORT_FILEFORMAT_BMP #else TRACELOG(LOG_WARNING, "Clipboard image: PLATFORM_DESKTOP_RGFW doesn't implement GetClipboardImage() for this OS"); -#endif +#endif // defined(_WIN32) +#else // !SUPPORT_MODULE_RTEXTURES + TRACELOG(LOG_WARNING, "Enabling SUPPORT_CLIPBOARD_IMAGE requires SUPPORT_MODULE_RTEXTURES to work properly"); +#endif // SUPPORT_MODULE_RTEXTURES #endif // SUPPORT_CLIPBOARD_IMAGE return image; diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index c16177f99..90d388b95 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -1163,6 +1163,22 @@ Image GetClipboardImage(void) Image image = { 0 }; #if SUPPORT_CLIPBOARD_IMAGE +#if !SUPPORT_MODULE_RTEXTURES + TRACELOG(LOG_WARNING, "Enabling SUPPORT_CLIPBOARD_IMAGE requires SUPPORT_MODULE_RTEXTURES to work properly"); + return image; +#endif + +// It's nice to have support Bitmap on Linux as well, but not as necessary as Windows +#if !SUPPORT_FILEFORMAT_BMP && defined(_WIN32) + TRACELOG(LOG_WARNING, "WARNING: Enabling SUPPORT_CLIPBOARD_IMAGE requires SUPPORT_FILEFORMAT_BMP, specially on Windows"); + return image; +#endif + +// From what I've tested applications on Wayland saves images on clipboard as PNG +#if (!SUPPORT_FILEFORMAT_PNG || !SUPPORT_FILEFORMAT_JPG) && !defined(_WIN32) + TRACELOG(LOG_WARNING, "WARNING: Getting image from the clipboard might not work without SUPPORT_FILEFORMAT_PNG or SUPPORT_FILEFORMAT_JPG"); + return image; +#endif // Let's hope compiler put these arrays in static memory const char *imageFormats[] = { "image/bmp", @@ -1197,7 +1213,7 @@ Image GetClipboardImage(void) } if (!IsImageValid(image)) TRACELOG(LOG_WARNING, "Clipboard: Couldn't get clipboard data. ERROR: %s", SDL_GetError()); -#endif +#endif // SUPPORT_CLIPBOARD_IMAGE return image; } diff --git a/src/raymath.h b/src/raymath.h index e3befaa08..ab1be1409 100644 --- a/src/raymath.h +++ b/src/raymath.h @@ -2708,7 +2708,7 @@ RMAPI void MatrixDecompose(Matrix mat, Vector3 *translation, Quaternion *rotatio stabilizer = fmaxf(stabilizer, fabsf(matColumns[i].x)); stabilizer = fmaxf(stabilizer, fabsf(matColumns[i].y)); stabilizer = fmaxf(stabilizer, fabsf(matColumns[i].z)); - }; + } matColumns[0] = Vector3Scale(matColumns[0], 1.0f / stabilizer); matColumns[1] = Vector3Scale(matColumns[1], 1.0f / stabilizer); matColumns[2] = Vector3Scale(matColumns[2], 1.0f / stabilizer); diff --git a/src/rcore.c b/src/rcore.c index b21d1ddff..85a5c0b3b 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -529,22 +529,6 @@ const char *TextFormat(const char *text, ...); // Formatting of text with variab #define PLATFORM_DESKTOP_GLFW #endif -// Using '#pragma message' because '#warning' is not adopted by MSVC -#if SUPPORT_CLIPBOARD_IMAGE - #if !SUPPORT_MODULE_RTEXTURES - #pragma message ("WARNING: Enabling SUPPORT_CLIPBOARD_IMAGE requires SUPPORT_MODULE_RTEXTURES to work properly") - #endif - - // It's nice to have support Bitmap on Linux as well, but not as necessary as Windows - #if !SUPPORT_FILEFORMAT_BMP && defined(_WIN32) - #pragma message ("WARNING: Enabling SUPPORT_CLIPBOARD_IMAGE requires SUPPORT_FILEFORMAT_BMP, specially on Windows") - #endif - - // From what I've tested applications on Wayland saves images on clipboard as PNG - #if (!SUPPORT_FILEFORMAT_PNG || !SUPPORT_FILEFORMAT_JPG) && !defined(_WIN32) - #pragma message ("WARNING: Getting image from the clipboard might not work without SUPPORT_FILEFORMAT_PNG or SUPPORT_FILEFORMAT_JPG") - #endif -#endif // Include platform-specific submodules #if defined(PLATFORM_DESKTOP_GLFW)