Browse Source

Fixed getMicroTime (for real this time)

Bart 15 years ago
parent
commit
f761e7e000
1 changed files with 85 additions and 85 deletions
  1. 85 85
      src/modules/timer/sdl/Timer.cpp

+ 85 - 85
src/modules/timer/sdl/Timer.cpp

@@ -16,47 +16,47 @@
 * 2. Altered source versions must be plainly marked as such, and must not be
 * 2. Altered source versions must be plainly marked as such, and must not be
 *    misrepresented as being the original software.
 *    misrepresented as being the original software.
 * 3. This notice may not be removed or altered from any source distribution.
 * 3. This notice may not be removed or altered from any source distribution.
-**/
-
-#include <common/config.h>
-
-#ifdef LOVE_WINDOWS
-#	include <windows.h>
-#	include <time.h>
-#else
-#	include <sys/time.h>
-#endif
-
-#include "Timer.h"
-
-namespace love
-{
-namespace timer
-{
-namespace sdl
-{
-	Timer::Timer()
-		: time_init(0), currTime(0), prevFpsUpdate(0), fps(0), fpsUpdateFrequency(1),
-		frames(0), dt(0)
-	{
+**/
+
+#include <common/config.h>
+
+#ifdef LOVE_WINDOWS
+#	include <windows.h>
+#	include <time.h>
+#else
+#	include <sys/time.h>
+#endif
+
+#include "Timer.h"
+
+namespace love
+{
+namespace timer
+{
+namespace sdl
+{
+	Timer::Timer()
+		: time_init(0), currTime(0), prevFpsUpdate(0), fps(0), fpsUpdateFrequency(1),
+		frames(0), dt(0)
+	{
 		// Init the SDL timer system.
 		// Init the SDL timer system.
 		if(SDL_InitSubSystem(SDL_INIT_TIMER) < 0)
 		if(SDL_InitSubSystem(SDL_INIT_TIMER) < 0)
-			throw Exception(SDL_GetError());
-	}
-
-	Timer::~Timer()
-	{
-		// Quit SDL timer.
-		SDL_QuitSubSystem(SDL_INIT_TIMER);
-	}
-
-	const char * Timer::getName() const
-	{
-		return "love.timer.sdl";
-	}
-
-	void Timer::step()
-	{
+			throw Exception(SDL_GetError());
+	}
+
+	Timer::~Timer()
+	{
+		// Quit SDL timer.
+		SDL_QuitSubSystem(SDL_INIT_TIMER);
+	}
+
+	const char * Timer::getName() const
+	{
+		return "love.timer.sdl";
+	}
+
+	void Timer::step()
+	{
 		// Frames rendered
 		// Frames rendered
 		frames++;
 		frames++;
 
 
@@ -75,49 +75,49 @@ namespace sdl
 			fps = frames/fpsUpdateFrequency;
 			fps = frames/fpsUpdateFrequency;
 			prevFpsUpdate = currTime;
 			prevFpsUpdate = currTime;
 			frames = 0;
 			frames = 0;
-		}
-	}
-
-	void Timer::sleep(int ms)
-	{
-		if(ms > 0)
-			SDL_Delay(ms);
-	}
-
-	float Timer::getDelta() const
-	{
-		return dt;
-	}
-
-	float Timer::getFPS() const
-	{
-		return fps;
-	}
-
-	float Timer::getTime() const
-	{
-		return (SDL_GetTicks() - time_init)/1000.0f;
-	}
-
-	float Timer::getMicroTime() const
-	{
-#ifdef LOVE_WINDOWS
-		/*
-			long ticks, freq;
-			QueryPeformanceCounter(&ticks);
-			QueryPeformanceFrequency(&freq);
-			long secs = ticks/freq;
-			long usecs = (ticks%freq)/(freq/1000000.0f);
-			return secs%86400 + usecs/1000000.0f;
-		*/
-			return 0;
-#else
-			timeval t;
-			gettimeofday(&t, NULL);
-			return t.tv_sec%86400 + t.tv_usec/1000000.0f;
-#endif
-	}
-
-} // sdl
-} // timer
-} // love
+		}
+	}
+
+	void Timer::sleep(int ms)
+	{
+		if(ms > 0)
+			SDL_Delay(ms);
+	}
+
+	float Timer::getDelta() const
+	{
+		return dt;
+	}
+
+	float Timer::getFPS() const
+	{
+		return fps;
+	}
+
+	float Timer::getTime() const
+	{
+		return (SDL_GetTicks() - time_init)/1000.0f;
+	}
+
+	float Timer::getMicroTime() const
+	{
+#ifdef LOVE_WINDOWS
+		__int64 ticks, freq;
+		LARGE_INTEGER temp;
+		QueryPerformanceCounter(&temp);
+		ticks = temp.QuadPart;
+		QueryPerformanceFrequency(&temp);
+		freq = temp.QuadPart;
+		__int64 secs = ticks/freq;
+		__int64 usecs = (ticks%freq)/(freq/1000000.0f);
+		return secs%86400 + usecs/1000000.0f;
+#else
+		timeval t;
+		gettimeofday(&t, NULL);
+		return t.tv_sec%86400 + t.tv_usec/1000000.0f;
+#endif
+	}
+
+} // sdl
+} // timer
+} // love