Files
itgmania212121/stepmania/src/RageTimer.cpp
T
2002-12-19 23:13:52 +00:00

62 lines
1.3 KiB
C++

#include "stdafx.h"
/*
-----------------------------------------------------------------------------
File: RageTimer.cpp
Desc: See header.
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
#include "RageTimer.h"
#include "RageLog.h"
#include "SDL-1.2.5/include/SDL.h"
#include "SDL-1.2.5/include/SDL_timer.h"
const float SECS_IN_DAY = 60*60*24;
/* XXX: SDL_GetTicks() wraps every month or so. Handle it. */
RageTimer::RageTimer()
{
Init();
GetDeltaTime(); /* so the next call to GetDeltaTime is from the construction of this object */
}
void RageTimer::Init()
{
static bool SDL_Initialized = false;
if(!SDL_Initialized) {
SDL_InitSubSystem(SDL_INIT_TIMER);
SDL_Initialized = true;
}
}
float RageTimer::GetDeltaTime()
{
/* Store the LDT in integral milliseconds, to avoid rounding error. */
int now = SDL_GetTicks();
int ret = now - m_iLastDeltaTime;
m_iLastDeltaTime = now;
return ret / 1000.f;
}
float RageTimer::PeekDeltaTime() const
{
return (SDL_GetTicks() - m_iLastDeltaTime) / 1000.f;
}
float RageTimer::GetTimeSinceStart()
{
return SDL_GetTicks() / 1000.f;
}
/* XXX: SDL_GetTicks() wraps every month or so. Handle it. */
unsigned int GetTicks()
{
return SDL_GetTicks();
}