Mesen-X/Utilities/Timer.cpp

35 lines
693 B
C++
Raw Normal View History

#include "stdafx.h"
2018-01-05 15:37:49 -05:00
#include "Timer.h"
2018-01-05 15:37:49 -05:00
#include <thread>
#include <chrono>
using namespace std::chrono;
Timer::Timer()
2015-07-21 18:18:20 -04:00
{
Reset();
}
void Timer::Reset()
{
_start = high_resolution_clock::now();
}
double Timer::GetElapsedMS()
{
high_resolution_clock::time_point end = high_resolution_clock::now();
duration<double> span = duration_cast<duration<double>>(end - _start);
return span.count() * 1000.0;
}
void Timer::WaitUntil(double targetMillisecond)
{
if(targetMillisecond > 0) {
double elapsedTime = GetElapsedMS();
if(targetMillisecond - elapsedTime > 1) {
std::this_thread::sleep_for(std::chrono::duration<int, std::milli>((int)(targetMillisecond - elapsedTime)));
}
}
2018-01-05 15:37:49 -05:00
}