30 _lastFPSTickTime = clock::now();
31 _startTime = clock::now();
36 _startTime = clock::now();
41 return std::chrono::duration<double>{clock::now() - _startTime}.count();
46 const auto now = clock::now();
47 _microseconds = std::chrono::duration_cast<std::chrono::microseconds>(now - _startTime).count();
48 _smoothNom = _smoothNom * _smoothingFactor + _microseconds /
MICRO_PER_SEC;
49 _smoothDen = _smoothDen * _smoothingFactor + 1.f;
51 const auto secsLastFPSTick = std::chrono::duration_cast<std::chrono::milliseconds>(now - _lastFPSTickTime).count();
55 _lastFPSTickTime = now;
67 return _microseconds / 1000.0;
82 return _smoothDen / _smoothNom;
constexpr double FPS_UPDATE_MILLISECS
constexpr double MICRO_PER_SEC
int64_t microseconds() const
double perSecondSmoothed() const
int64_t milliseconds() const