Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Initialize timers first so the tick counter is valid by the time the …
…audio and video systems initialize.
- Loading branch information
Showing
with
25 additions
and
25 deletions.
-
+25
−25
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 |
|
|