fix windows tui frame timing bug

This commit is contained in:
Boof2015
2026-08-16 00:40:38 -04:00
parent 10fca00c41
commit 90cde23f4d
5 changed files with 137 additions and 11 deletions
+20
View File
@@ -0,0 +1,20 @@
#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