---
name: "SDL_GetGlobalMouseState"
section: "3"
platform: "linux"
package: "libsdl3-doc"
version: "3.2.10+ds-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SDL_GetGlobalMouseState"
---

# SDL\_GetGlobalMouseState(3)

Query the platform for the asynchronous mouse button state and the desktop-relative platform-cursor position.

## NAME

SDL\_GetGlobalMouseState - Query the platform for the asynchronous mouse button state and the desktop-relative platform-cursor position.

## HEADER FILE

Defined in SDL3/SDL\_mouse.h

## SYNOPSIS

```
#include "SDL3/SDL.h"
```

**SDL\_MouseButtonFlags SDL\_GetGlobalMouseState(float \*x, float \*y);**

## DESCRIPTION

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.

## FUNCTION PARAMETERS

- *x*

  a pointer to receive the platform-cursor's x-position from the desktop's top left corner, can be NULL if unused.

- *y*

  a pointer to receive the platform-cursor's y-position from the desktop's top left corner, can be NULL if unused.

## RETURN VALUE

( **SDL\_MouseButtonFlags** ) Returns a 32-bit bitmask of the button state that can be bitwise-compared against the

**SDL\_BUTTON\_MASK** (X) macro.

## THREAD SAFETY

This function should only be called on the main thread.

## AVAILABILITY

This function is available since SDL 3.2.0.

## SEE ALSO

**•**(3), [**SDL\_CaptureMouse**(3)](/SDL_CaptureMouse/3.md), **•**(3), [**SDL\_GetMouseState**(3)](/SDL_GetMouseState/3.md), **•**(3), [**SDL\_GetGlobalMouseState**(3)](/SDL_GetGlobalMouseState/3.md)
