parent
2d2a854f0f
commit
58ef1da02a
@ -1,27 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
#include "Pub_Sub.h"
|
|
||||||
|
|
||||||
class FrameWatcher : public VrEventPublisher{
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public:
|
|
||||||
FrameWatcher();
|
|
||||||
~FrameWatcher();
|
|
||||||
|
|
||||||
void do_tick();
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
float get_elapsed_time();
|
|
||||||
|
|
||||||
float step_size = 0.0166f;
|
|
||||||
double frame_time = 0.0;
|
|
||||||
double elapsed_time = 0.0;
|
|
||||||
double delta_time = 0.0;
|
|
||||||
double accumulator_time = 0.0;
|
|
||||||
double current_time = 0.0;
|
|
||||||
|
|
||||||
|
|
||||||
};
|
|
@ -1,48 +0,0 @@
|
|||||||
|
|
||||||
#include "FrameWatcher.h"
|
|
||||||
#include <chrono>
|
|
||||||
|
|
||||||
FrameWatcher::FrameWatcher() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
FrameWatcher::~FrameWatcher()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void FrameWatcher::do_tick() {
|
|
||||||
|
|
||||||
|
|
||||||
elapsed_time = get_elapsed_time();
|
|
||||||
delta_time = elapsed_time - current_time;
|
|
||||||
current_time = elapsed_time;
|
|
||||||
|
|
||||||
if (delta_time > 0.2f)
|
|
||||||
delta_time = 0.2f;
|
|
||||||
|
|
||||||
accumulator_time += delta_time;
|
|
||||||
|
|
||||||
while ((accumulator_time - step_size) >= step_size) {
|
|
||||||
accumulator_time -= step_size;
|
|
||||||
|
|
||||||
// ==== DELTA TIME LOCKED ====
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
float FrameWatcher::get_elapsed_time() {
|
|
||||||
|
|
||||||
static std::chrono::time_point<std::chrono::system_clock> start;
|
|
||||||
static bool started = false;
|
|
||||||
|
|
||||||
if (!started) {
|
|
||||||
start = std::chrono::system_clock::now();
|
|
||||||
started = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::chrono::time_point<std::chrono::system_clock> now = std::chrono::system_clock::now();
|
|
||||||
std::chrono::duration<double> elapsed_time = now - start;
|
|
||||||
return static_cast<float>(elapsed_time.count());
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in new issue