From d239cb63f2fe53cae825b226789587c42ad660cd Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Fri, 30 Dec 2011 06:41:12 -0500 Subject: [PATCH] Initialize timers first so the tick counter is valid by the time the audio and video systems initialize. --- src/SDL.c | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/src/SDL.c b/src/SDL.c index 6058b3e4e..c0485646b 100644 --- a/src/SDL.c +++ b/src/SDL.c @@ -64,6 +64,25 @@ int surfaces_allocated = 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) ) { @@ -95,25 +114,6 @@ int 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) && @@ -185,12 +185,6 @@ void SDL_QuitSubSystem(Uint32 flags) SDL_initialized &= ~SDL_INIT_JOYSTICK; } #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(); @@ -203,6 +197,12 @@ void 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 SDL_WasInit(Uint32 flags)