From ac54d57aa524ce2a2d392c7b794cdab31ca3e81f Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Tue, 26 Oct 2021 20:02:38 -0500 Subject: [PATCH] event: Check subsystem initialization before events or devices SDL_WasInit() is cheaper SDL_NumJoysticks()/SDL_NumSensors(). --- src/events/SDL_events.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/events/SDL_events.c b/src/events/SDL_events.c index 2e79852b3..51d3bd64f 100644 --- a/src/events/SDL_events.c +++ b/src/events/SDL_events.c @@ -881,19 +881,20 @@ SDL_WaitEventTimeout_Device(_THIS, SDL_Window *wakeup_window, SDL_Event * event, return 0; } -static int +static SDL_bool SDL_events_need_polling() { SDL_bool need_polling = SDL_FALSE; #if !SDL_JOYSTICK_DISABLED - need_polling = \ - (!SDL_disabled_events[SDL_JOYAXISMOTION >> 8] || SDL_JoystickEventState(SDL_QUERY)) \ - && (SDL_NumJoysticks() > 0); + need_polling = + SDL_WasInit(SDL_INIT_JOYSTICK) && + (!SDL_disabled_events[SDL_JOYAXISMOTION >> 8] || SDL_JoystickEventState(SDL_QUERY)) && + (SDL_NumJoysticks() > 0); #endif #if !SDL_SENSOR_DISABLED - need_polling = need_polling || (!SDL_disabled_events[SDL_SENSORUPDATE >> 8] && \ - (SDL_NumSensors() > 0)); + need_polling = need_polling || + (SDL_WasInit(SDL_INIT_SENSOR) && !SDL_disabled_events[SDL_SENSORUPDATE >> 8] && (SDL_NumSensors() > 0)); #endif return need_polling;