From 6815f9cb51e17dc64e6bbbe8393cd2f11f26f3b7 Mon Sep 17 00:00:00 2001 From: kin fuyuki Date: Sun, 21 Dec 2025 04:43:21 -0300 Subject: [PATCH] add global mouse getter (good for clickthrough transparent windows) --- src/raylib.h | 1 + src/rcore.c | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/raylib.h b/src/raylib.h index ba80e40c7..15e02254f 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1211,6 +1211,7 @@ RLAPI bool IsMouseButtonUp(int button); // Check if a mous RLAPI int GetMouseX(void); // Get mouse position X RLAPI int GetMouseY(void); // Get mouse position Y RLAPI Vector2 GetMousePosition(void); // Get mouse position XY +RLAPI Vector2 GetMousePositionDesktop(void); // Get mouse position XY RLAPI Vector2 GetMouseDelta(void); // Get mouse delta between frames RLAPI void SetMousePosition(int x, int y); // Set mouse position XY RLAPI void SetMouseOffset(int offsetX, int offsetY); // Set mouse offset diff --git a/src/rcore.c b/src/rcore.c index 1f47efcb9..79585af20 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -3684,7 +3684,26 @@ Vector2 GetMousePosition(void) return position; } +#include +Vector2 GetMousePositionDesktop(void) +{ + Vector2 position = { 0 }; + #ifndef PLATFORM_ANDROID + int wxpos, wypos; + + glfwGetWindowPos(GetWindowHandle(), &wxpos, &wypos); + + double xpos, ypos; + glfwGetCursorPos(GetWindowHandle(), &xpos, &ypos); + position.x = wxpos + (floor(xpos)); + position.y = wypos + (floor(ypos)); + + #else + return GetMousePosition(); + #endif + return position; +} // Get mouse delta between frames Vector2 GetMouseDelta(void) {