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) {