Files
prism/tui/src/frame_pacing.cpp
T
2026-08-16 00:40:38 -04:00

21 lines
661 B
C++

#include "frame_pacing.h"
namespace Prism::Tui {
std::chrono::steady_clock::time_point advanceFrameDeadline(
std::chrono::steady_clock::time_point currentDeadline,
std::chrono::steady_clock::time_point renderedAt,
std::chrono::steady_clock::duration frameInterval) {
if (frameInterval <= std::chrono::steady_clock::duration::zero()) {
return renderedAt;
}
const auto elapsed = renderedAt - currentDeadline;
const auto intervalsToAdvance = elapsed >= decltype(elapsed)::zero()
? elapsed / frameInterval + 1
: 1;
return currentDeadline + frameInterval * intervalsToAdvance;
}
} // namespace Prism::Tui