diff --git a/src/SDL.c b/src/SDL.c index 58d6f365c9049f8694a7b73f9f5516ddef6c8b6b..4444a8b49b66e8e843072dfc0b458e289fa17a15 100644 --- a/src/SDL.c +++ b/src/SDL.c @@ -49,6 +49,25 @@ static Uint32 ticks_started = 0; int SDL_InitSubSystem(Uint32 flags) { +#if !SDL_TIMERS_DISABLED + /* Initialize the timer subsystem */ + if (!ticks_started) { + SDL_StartTicks(); + ticks_started = 1; + } + if ((flags & SDL_INIT_TIMER) && !(SDL_initialized & SDL_INIT_TIMER)) { + if (SDL_TimerInit() < 0) { + return (-1); + } + SDL_initialized |= SDL_INIT_TIMER; + } +#else + if (flags & SDL_INIT_TIMER) { + SDL_SetError("SDL not built with timer support"); + return (-1); + } +#endif + #if !SDL_VIDEO_DISABLED /* Initialize the video/event subsystem */ if ((flags & SDL_INIT_VIDEO) && !(SDL_initialized & SDL_INIT_VIDEO)) { @@ -79,25 +98,6 @@ SDL_InitSubSystem(Uint32 flags) } #endif -#if !SDL_TIMERS_DISABLED - /* Initialize the timer subsystem */ - if (!ticks_started) { - SDL_StartTicks(); - ticks_started = 1; - } - if ((flags & SDL_INIT_TIMER) && !(SDL_initialized & SDL_INIT_TIMER)) { - if (SDL_TimerInit() < 0) { - return (-1); - } - SDL_initialized |= SDL_INIT_TIMER; - } -#else - if (flags & SDL_INIT_TIMER) { - SDL_SetError("SDL not built with timer support"); - return (-1); - } -#endif - #if !SDL_JOYSTICK_DISABLED /* Initialize the joystick subsystem */ if ((flags & SDL_INIT_JOYSTICK) && !(SDL_initialized & SDL_INIT_JOYSTICK)) { @@ -175,12 +175,6 @@ SDL_QuitSubSystem(Uint32 flags) SDL_initialized &= ~SDL_INIT_HAPTIC; } #endif -#if !SDL_TIMERS_DISABLED - if ((flags & SDL_initialized & SDL_INIT_TIMER)) { - SDL_TimerQuit(); - SDL_initialized &= ~SDL_INIT_TIMER; - } -#endif #if !SDL_AUDIO_DISABLED if ((flags & SDL_initialized & SDL_INIT_AUDIO)) { SDL_AudioQuit(); @@ -193,6 +187,12 @@ SDL_QuitSubSystem(Uint32 flags) SDL_initialized &= ~SDL_INIT_VIDEO; } #endif +#if !SDL_TIMERS_DISABLED + if ((flags & SDL_initialized & SDL_INIT_TIMER)) { + SDL_TimerQuit(); + SDL_initialized &= ~SDL_INIT_TIMER; + } +#endif } Uint32