sdlGetGlobalMouseState function
Query the platform for the asynchronous mouse button state and the desktop-relative platform-cursor position.
This function immediately queries the platform for the most recent asynchronous state, more costly than retrieving SDL's cached state in SDL_GetMouseState().
Passing non-NULL pointers to x
or y
will write the destination with
respective x or y coordinates relative to the desktop.
In Relative Mode, the platform-cursor's position usually contradicts the SDL-cursor's position as manually calculated from SDL_GetMouseState() and SDL_GetWindowPosition.
This function can be useful if you need to track the mouse outside of a specific window and SDL_CaptureMouse() doesn't fit your needs. For example, it could be useful if you need to track the mouse while dragging a window, where coordinates relative to a window might not be in sync at all times.
\param x a pointer to receive the platform-cursor's x-position from the desktop's top left corner, can be NULL if unused. \param y a pointer to receive the platform-cursor's y-position from the desktop's top left corner, can be NULL if unused. \returns a 32-bit bitmask of the button state that can be bitwise-compared against the SDL_BUTTON_MASK(X) macro.
\threadsafety This function should only be called on the main thread.
\since This function is available since SDL 3.1.3.
\sa SDL_CaptureMouse \sa SDL_GetMouseState \sa SDL_GetGlobalMouseState
extern SDL_DECLSPEC SDL_MouseButtonFlags SDLCALL SDL_GetGlobalMouseState(float *x, float *y)
Implementation
int sdlGetGlobalMouseState(Pointer<Float> x, Pointer<Float> y) {
final sdlGetGlobalMouseStateLookupFunction = libSdl3.lookupFunction<
Uint32 Function(Pointer<Float> x, Pointer<Float> y),
int Function(
Pointer<Float> x, Pointer<Float> y)>('SDL_GetGlobalMouseState');
return sdlGetGlobalMouseStateLookupFunction(x, y);
}