sdlGetRelativeMouseState function

int sdlGetRelativeMouseState(
  1. Pointer<Float> x,
  2. Pointer<Float> y
)

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

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

\param x a pointer to receive the x mouse delta accumulated since last call, can be NULL if unused. \param y a pointer to receive the y mouse delta accumulated since last call, 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_GetMouseState \sa SDL_GetGlobalMouseState

extern SDL_DECLSPEC SDL_MouseButtonFlags SDLCALL SDL_GetRelativeMouseState(float *x, float *y)

Implementation

int sdlGetRelativeMouseState(Pointer<Float> x, Pointer<Float> y) {
  final sdlGetRelativeMouseStateLookupFunction = libSdl3.lookupFunction<
      Uint32 Function(Pointer<Float> x, Pointer<Float> y),
      int Function(
          Pointer<Float> x, Pointer<Float> y)>('SDL_GetRelativeMouseState');
  return sdlGetRelativeMouseStateLookupFunction(x, y);
}