Fixed getMicroTime (for real this time)

This commit is contained in:
Bart
2009-11-22 22:01:28 +01:00
parent 21f1f90bb5
commit f761e7e000
+85 -85
View File
@@ -16,47 +16,47 @@
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 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.
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++;
@@ -75,49 +75,49 @@ namespace sdl
fps = frames/fpsUpdateFrequency;
prevFpsUpdate = currTime;
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