Commit b7323989 authored by Sam Lantinga's avatar Sam Lantinga

Initialize timers first so the tick counter is valid by the time the audio and...

Initialize timers first so the tick counter is valid by the time the audio and video systems initialize.
parent c40aed2a
...@@ -49,6 +49,25 @@ static Uint32 ticks_started = 0; ...@@ -49,6 +49,25 @@ static Uint32 ticks_started = 0;
int int
SDL_InitSubSystem(Uint32 flags) 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 #if !SDL_VIDEO_DISABLED
/* Initialize the video/event subsystem */ /* Initialize the video/event subsystem */
if ((flags & SDL_INIT_VIDEO) && !(SDL_initialized & SDL_INIT_VIDEO)) { if ((flags & SDL_INIT_VIDEO) && !(SDL_initialized & SDL_INIT_VIDEO)) {
...@@ -79,25 +98,6 @@ SDL_InitSubSystem(Uint32 flags) ...@@ -79,25 +98,6 @@ SDL_InitSubSystem(Uint32 flags)
} }
#endif #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 #if !SDL_JOYSTICK_DISABLED
/* Initialize the joystick subsystem */ /* Initialize the joystick subsystem */
if ((flags & SDL_INIT_JOYSTICK) && !(SDL_initialized & SDL_INIT_JOYSTICK)) { if ((flags & SDL_INIT_JOYSTICK) && !(SDL_initialized & SDL_INIT_JOYSTICK)) {
...@@ -175,12 +175,6 @@ SDL_QuitSubSystem(Uint32 flags) ...@@ -175,12 +175,6 @@ SDL_QuitSubSystem(Uint32 flags)
SDL_initialized &= ~SDL_INIT_HAPTIC; SDL_initialized &= ~SDL_INIT_HAPTIC;
} }
#endif #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 !SDL_AUDIO_DISABLED
if ((flags & SDL_initialized & SDL_INIT_AUDIO)) { if ((flags & SDL_initialized & SDL_INIT_AUDIO)) {
SDL_AudioQuit(); SDL_AudioQuit();
...@@ -193,6 +187,12 @@ SDL_QuitSubSystem(Uint32 flags) ...@@ -193,6 +187,12 @@ SDL_QuitSubSystem(Uint32 flags)
SDL_initialized &= ~SDL_INIT_VIDEO; SDL_initialized &= ~SDL_INIT_VIDEO;
} }
#endif #endif
#if !SDL_TIMERS_DISABLED
if ((flags & SDL_initialized & SDL_INIT_TIMER)) {
SDL_TimerQuit();
SDL_initialized &= ~SDL_INIT_TIMER;
}
#endif
} }
Uint32 Uint32
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment