Initialize timers first so the tick counter is valid by the time the audio and video systems initialize.
authorSam Lantinga <slouken@libsdl.org>
Fri, 30 Dec 2011 06:41:41 -0500
changeset 6128 2804d71badce
parent 6120 9019aa36f081
child 6135 b052a5882a47
Initialize timers first so the tick counter is valid by the time the audio and video systems initialize.
src/SDL.c
--- a/src/SDL.c	Thu Dec 29 13:54:22 2011 -0500
+++ b/src/SDL.c	Fri Dec 30 06:41:41 2011 -0500
@@ -49,6 +49,25 @@
 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 @@
     }
 #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_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_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