Initialize timers first so the tick counter is valid by the time the audio and video systems initialize. SDL-1.2
authorSam Lantinga <slouken@libsdl.org>
Fri, 30 Dec 2011 06:41:12 -0500
branchSDL-1.2
changeset 6127 73a1a4c35259
parent 6126 36f33f295c97
child 6129 19c7412a6345
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	Fri Dec 30 06:29:06 2011 -0500
+++ b/src/SDL.c	Fri Dec 30 06:41:12 2011 -0500
@@ -64,6 +64,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) ) {
@@ -95,25 +114,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) &&
@@ -185,12 +185,6 @@
 		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 @@
 		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)