mirror of
https://github.com/love2d/love.git
synced 2026-08-20 20:49:54 +02:00
Fixed getMicroTime (for real this time)
This commit is contained in:
@@ -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>
|
#include <common/config.h>
|
||||||
|
|
||||||
#ifdef LOVE_WINDOWS
|
#ifdef LOVE_WINDOWS
|
||||||
# include <windows.h>
|
# include <windows.h>
|
||||||
# include <time.h>
|
# include <time.h>
|
||||||
#else
|
#else
|
||||||
# include <sys/time.h>
|
# include <sys/time.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "Timer.h"
|
#include "Timer.h"
|
||||||
|
|
||||||
namespace love
|
namespace love
|
||||||
{
|
{
|
||||||
namespace timer
|
namespace timer
|
||||||
{
|
{
|
||||||
namespace sdl
|
namespace sdl
|
||||||
{
|
{
|
||||||
Timer::Timer()
|
Timer::Timer()
|
||||||
: time_init(0), currTime(0), prevFpsUpdate(0), fps(0), fpsUpdateFrequency(1),
|
: time_init(0), currTime(0), prevFpsUpdate(0), fps(0), fpsUpdateFrequency(1),
|
||||||
frames(0), dt(0)
|
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());
|
throw Exception(SDL_GetError());
|
||||||
}
|
}
|
||||||
|
|
||||||
Timer::~Timer()
|
Timer::~Timer()
|
||||||
{
|
{
|
||||||
// Quit SDL timer.
|
// Quit SDL timer.
|
||||||
SDL_QuitSubSystem(SDL_INIT_TIMER);
|
SDL_QuitSubSystem(SDL_INIT_TIMER);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char * Timer::getName() const
|
const char * Timer::getName() const
|
||||||
{
|
{
|
||||||
return "love.timer.sdl";
|
return "love.timer.sdl";
|
||||||
}
|
}
|
||||||
|
|
||||||
void Timer::step()
|
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)
|
void Timer::sleep(int ms)
|
||||||
{
|
{
|
||||||
if(ms > 0)
|
if(ms > 0)
|
||||||
SDL_Delay(ms);
|
SDL_Delay(ms);
|
||||||
}
|
}
|
||||||
|
|
||||||
float Timer::getDelta() const
|
float Timer::getDelta() const
|
||||||
{
|
{
|
||||||
return dt;
|
return dt;
|
||||||
}
|
}
|
||||||
|
|
||||||
float Timer::getFPS() const
|
float Timer::getFPS() const
|
||||||
{
|
{
|
||||||
return fps;
|
return fps;
|
||||||
}
|
}
|
||||||
|
|
||||||
float Timer::getTime() const
|
float Timer::getTime() const
|
||||||
{
|
{
|
||||||
return (SDL_GetTicks() - time_init)/1000.0f;
|
return (SDL_GetTicks() - time_init)/1000.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
float Timer::getMicroTime() const
|
float Timer::getMicroTime() const
|
||||||
{
|
{
|
||||||
#ifdef LOVE_WINDOWS
|
#ifdef LOVE_WINDOWS
|
||||||
/*
|
__int64 ticks, freq;
|
||||||
long ticks, freq;
|
LARGE_INTEGER temp;
|
||||||
QueryPeformanceCounter(&ticks);
|
QueryPerformanceCounter(&temp);
|
||||||
QueryPeformanceFrequency(&freq);
|
ticks = temp.QuadPart;
|
||||||
long secs = ticks/freq;
|
QueryPerformanceFrequency(&temp);
|
||||||
long usecs = (ticks%freq)/(freq/1000000.0f);
|
freq = temp.QuadPart;
|
||||||
return secs%86400 + usecs/1000000.0f;
|
__int64 secs = ticks/freq;
|
||||||
*/
|
__int64 usecs = (ticks%freq)/(freq/1000000.0f);
|
||||||
return 0;
|
return secs%86400 + usecs/1000000.0f;
|
||||||
#else
|
#else
|
||||||
timeval t;
|
timeval t;
|
||||||
gettimeofday(&t, NULL);
|
gettimeofday(&t, NULL);
|
||||||
return t.tv_sec%86400 + t.tv_usec/1000000.0f;
|
return t.tv_sec%86400 + t.tv_usec/1000000.0f;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
} // sdl
|
} // sdl
|
||||||
} // timer
|
} // timer
|
||||||
} // love
|
} // love
|
||||||
|
|||||||
Reference in New Issue
Block a user