sdlGetKeyboardState function

Pointer<Uint8> sdlGetKeyboardState(
  1. Pointer<Int32> numkeys
)

Get a snapshot of the current state of the keyboard.

The pointer returned is a pointer to an internal SDL array. It will be valid for the whole lifetime of the application and should not be freed by the caller.

A array element with a value of true means that the key is pressed and a value of false means that it is not. Indexes into this array are obtained by using SDL_Scancode values.

Use SDL_PumpEvents() to update the state array.

This function gives you the current state after all events have been processed, so if a key or button has been pressed and released before you process events, then the pressed state will never show up in the SDL_GetKeyboardState() calls.

Note: This function doesn't take into account whether shift has been pressed or not.

\param numkeys if non-NULL, receives the length of the returned array. \returns a pointer to an array of key states.

\threadsafety It is safe to call this function from any thread.

\since This function is available since SDL 3.1.3.

\sa SDL_PumpEvents \sa SDL_ResetKeyboard

extern SDL_DECLSPEC const bool * SDLCALL SDL_GetKeyboardState(int *numkeys)

Implementation

Pointer<Uint8> sdlGetKeyboardState(Pointer<Int32> numkeys) {
  final sdlGetKeyboardStateLookupFunction = libSdl3.lookupFunction<
      Pointer<Uint8> Function(Pointer<Int32> numkeys),
      Pointer<Uint8> Function(Pointer<Int32> numkeys)>('SDL_GetKeyboardState');
  return sdlGetKeyboardStateLookupFunction(numkeys);
}