mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Add varying levels of precision to TimeTaker
This commit is contained in:
parent
5e7e0347cd
commit
df49b93877
5 changed files with 108 additions and 17 deletions
35
src/main.cpp
35
src/main.cpp
|
@ -133,7 +133,12 @@ MainGameCallback *g_gamecallback = NULL;
|
|||
u32 getTimeMs()
|
||||
{
|
||||
/* Use imprecise system calls directly (from porting.h) */
|
||||
return porting::getTimeMs();
|
||||
return porting::getTime(PRECISION_MILLI);
|
||||
}
|
||||
|
||||
u32 getTime(TimePrecision prec)
|
||||
{
|
||||
return porting::getTime(prec);
|
||||
}
|
||||
|
||||
#else
|
||||
|
@ -142,7 +147,7 @@ u32 getTimeMs()
|
|||
class TimeGetter
|
||||
{
|
||||
public:
|
||||
virtual u32 getTime() = 0;
|
||||
virtual u32 getTime(TimePrecision prec) = 0;
|
||||
};
|
||||
|
||||
// A precise irrlicht one
|
||||
|
@ -152,11 +157,15 @@ public:
|
|||
IrrlichtTimeGetter(IrrlichtDevice *device):
|
||||
m_device(device)
|
||||
{}
|
||||
u32 getTime()
|
||||
u32 getTime(TimePrecision prec)
|
||||
{
|
||||
if(m_device == NULL)
|
||||
return 0;
|
||||
return m_device->getTimer()->getRealTime();
|
||||
if (prec == PRECISION_MILLI) {
|
||||
if(m_device == NULL)
|
||||
return 0;
|
||||
return m_device->getTimer()->getRealTime();
|
||||
} else {
|
||||
return porting::getTime(prec);
|
||||
}
|
||||
}
|
||||
private:
|
||||
IrrlichtDevice *m_device;
|
||||
|
@ -165,9 +174,9 @@ private:
|
|||
class SimpleTimeGetter: public TimeGetter
|
||||
{
|
||||
public:
|
||||
u32 getTime()
|
||||
u32 getTime(TimePrecision prec)
|
||||
{
|
||||
return porting::getTimeMs();
|
||||
return porting::getTime(prec);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -179,7 +188,13 @@ u32 getTimeMs()
|
|||
{
|
||||
if(g_timegetter == NULL)
|
||||
return 0;
|
||||
return g_timegetter->getTime();
|
||||
return g_timegetter->getTime(PRECISION_MILLI);
|
||||
}
|
||||
|
||||
u32 getTime(TimePrecision prec) {
|
||||
if (g_timegetter == NULL)
|
||||
return 0;
|
||||
return g_timegetter->getTime(prec);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -805,7 +820,7 @@ void SpeedTests()
|
|||
}
|
||||
}
|
||||
// Do at least 10ms
|
||||
while(timer.getTime() < 10);
|
||||
while(timer.getTimerTime() < 10);
|
||||
|
||||
u32 dtime = timer.stop();
|
||||
u32 per_ms = n / dtime;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue