Avoid using doubles for GetTimeSinceStart().
This commit is contained in:
@@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
#include "RageTimer.h"
|
#include "RageTimer.h"
|
||||||
#include "RageLog.h"
|
#include "RageLog.h"
|
||||||
|
#include "RageUtil.h"
|
||||||
|
|
||||||
#include "arch/ArchHooks/ArchHooks.h"
|
#include "arch/ArchHooks/ArchHooks.h"
|
||||||
|
|
||||||
@@ -49,12 +50,12 @@ static uint64_t GetTime( bool bAccurate )
|
|||||||
|
|
||||||
float RageTimer::GetTimeSinceStart( bool bAccurate )
|
float RageTimer::GetTimeSinceStart( bool bAccurate )
|
||||||
{
|
{
|
||||||
int64_t usecs = GetTime( bAccurate );
|
uint64_t usecs = GetTime( bAccurate );
|
||||||
usecs -= g_iStartTime;
|
usecs -= g_iStartTime;
|
||||||
// HACK: VC6 can't cast u64 to a double, but it can cast a i64 to a double.
|
/* Avoid using doubles for hardware that doesn't support them.
|
||||||
// We can afford to lose one bit of precision since these numbers will
|
* This is writing usecs = high*2^32 + low and doing
|
||||||
// never overflow a 64 int.
|
* usecs/10^6 = high * (2^32/10^6) + low/10^6. */
|
||||||
return float( double(usecs) / 1000000. );
|
return uint32_t(usecs>>32) * 4294.967296f + uint32_t(usecs)/1000000.f;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RageTimer::Touch()
|
void RageTimer::Touch()
|
||||||
|
|||||||
Reference in New Issue
Block a user