mirror of
https://github.com/cemu-project/Cemu.git
synced 2025-07-09 16:31:19 +12:00
34 lines
800 B
C++
34 lines
800 B
C++
#include "util/highresolutiontimer/HighResolutionTimer.h"
|
|
#include "Common/precompiled.h"
|
|
|
|
HighResolutionTimer HighResolutionTimer::now()
|
|
{
|
|
#if BOOST_OS_WINDOWS
|
|
LARGE_INTEGER pc;
|
|
QueryPerformanceCounter(&pc);
|
|
return HighResolutionTimer(pc.QuadPart);
|
|
#else
|
|
timespec pc;
|
|
clock_gettime(CLOCK_MONOTONIC, &pc);
|
|
uint64 nsec = (uint64)pc.tv_sec * (uint64)1000000000 + (uint64)pc.tv_nsec;
|
|
return HighResolutionTimer(nsec);
|
|
#endif
|
|
}
|
|
|
|
HRTick HighResolutionTimer::getFrequency()
|
|
{
|
|
return m_freq;
|
|
}
|
|
|
|
|
|
uint64 HighResolutionTimer::m_freq = []() -> uint64 {
|
|
#if BOOST_OS_WINDOWS
|
|
LARGE_INTEGER freq;
|
|
QueryPerformanceFrequency(&freq);
|
|
return (uint64)(freq.QuadPart);
|
|
#else
|
|
timespec pc;
|
|
clock_getres(CLOCK_MONOTONIC, &pc);
|
|
return (uint64)1000000000 / (uint64)pc.tv_nsec;
|
|
#endif
|
|
}();
|