---
name: "SDL_GetRelativeMouseState"
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_GetRelativeMouseState"
---

# SDL\_GetRelativeMouseState(3)

Query SDL's cache for the synchronous mouse button state and accumulated mouse delta since last call.

## NAME

SDL\_GetRelativeMouseState - Query SDL's cache for the synchronous mouse button state and accumulated mouse delta since last call.

## HEADER FILE

Defined in SDL3/SDL\_mouse.h

## SYNOPSIS

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

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

## DESCRIPTION

This function returns the cached synchronous state as SDL understands it from the last pump of the event queue.

To query the platform for immediate asynchronous state, use

**SDL\_GetGlobalMouseState** .

Passing non-NULL pointers to **x** or **y** will write the destination with respective x or y deltas accumulated since the last call to this function (or since event initialization).

This function is useful for reducing overhead by processing relative mouse inputs in one go per-frame instead of individually per-event, at the expense of losing the order between events within the frame (e.g. quickly pressing and releasing a button within the same frame).

## FUNCTION PARAMETERS

- *x*

  a pointer to receive the x mouse delta accumulated since last call, can be NULL if unused.

- *y*

  a pointer to receive the y mouse delta accumulated since last call, 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\_GetMouseState**(3)](/SDL_GetMouseState/3.md), **•**(3), [**SDL\_GetGlobalMouseState**(3)](/SDL_GetGlobalMouseState/3.md)
