Program Listing for File timeSystem.cpp
↰ Return to documentation for file (PrismEngine/src/timeSystem.cpp)
#include "timeSystem.h"
#include "timeResource.h"
#include <chrono>
#include <SDL_timer.h>
void prism::scene::TimeSystem::start()
{
lastTime = std::chrono::steady_clock::now();
}
void prism::scene::TimeSystem::update()
{
frameStartTime = std::chrono::steady_clock::now();
auto currentTime = std::chrono::steady_clock::now();
double_t rawDeltaTime = std::chrono::duration<double_t>(currentTime - lastTime).count();
lastTime = currentTime;
TimeResource* time = scene->getResource<TimeResource>();
if (!time) return;
time->update(rawDeltaTime);
if (time->isFpsCap())
{
double_t waitTime = time->calculateWaitTime(frameStartTime);
if (waitTime > 0.0)
{
SDL_Delay(static_cast<Uint32>(waitTime * 1000.0));
}
}
}