Play-/Source/FrameLimiter.h

32 lines
528 B
C
Raw Permalink Normal View History

#pragma once
#include <chrono>
2021-02-24 12:53:04 -05:00
#include "Types.h"
class CFrameLimiter
{
public:
CFrameLimiter();
~CFrameLimiter();
void BeginFrame();
void EndFrame();
void SetFrameRate(uint32);
private:
typedef std::chrono::high_resolution_clock::time_point TimePoint;
enum
{
MAX_FRAMETIMES = 4,
};
std::chrono::microseconds m_frameTimes[MAX_FRAMETIMES];
uint32 m_frameTimeIndex = 0;
std::chrono::microseconds m_minFrameDuration = std::chrono::microseconds(0);
bool m_frameStarted = false;
TimePoint m_lastFrameTime;
};