Only check SDL_SYS_JoystickNeedsPolling() if we know we don't need to poll for other reasons. This avoids a select() syscall on Linux if it isn't necessary.
This commit is contained in:
parent
6b4cb17219
commit
80493dfae0
2 changed files with 8 additions and 13 deletions
|
@ -637,7 +637,7 @@ int
|
|||
SDL_JoystickEventState(int state)
|
||||
{
|
||||
#if SDL_EVENTS_DISABLED
|
||||
return SDL_IGNORE;
|
||||
return SDL_DISABLE;
|
||||
#else
|
||||
const Uint32 event_list[] = {
|
||||
SDL_JOYAXISMOTION, SDL_JOYBALLMOTION, SDL_JOYHATMOTION,
|
||||
|
@ -647,7 +647,7 @@ SDL_JoystickEventState(int state)
|
|||
|
||||
switch (state) {
|
||||
case SDL_QUERY:
|
||||
state = SDL_IGNORE;
|
||||
state = SDL_DISABLE;
|
||||
for (i = 0; i < SDL_arraysize(event_list); ++i) {
|
||||
state = SDL_EventState(event_list[i], SDL_QUERY);
|
||||
if (state == SDL_ENABLE) {
|
||||
|
@ -669,15 +669,10 @@ SDL_JoystickEventState(int state)
|
|||
SDL_bool
|
||||
SDL_PrivateJoystickNeedsPolling()
|
||||
{
|
||||
if ( SDL_SYS_JoystickNeedsPolling() )
|
||||
{
|
||||
// sys layer needs us to think
|
||||
if (SDL_joysticks != NULL) {
|
||||
return SDL_TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
// otherwise only do it if a joystick is opened
|
||||
return SDL_joysticks != NULL;
|
||||
} else {
|
||||
return SDL_SYS_JoystickNeedsPolling();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue