Skip to content

ludus::foundation::time::FrameClock

Ludus Wiki · API overview · Browse API

Class

Sample once per frame and pass the result by value.
Reset at startup, pause, resume, suspension and session replacement. First sample yields zero elapsed. Maximum delta is application policy; zero deliberately freezes accepted time. A backwards sample yields zero and retains the previous high-water mark, so recovery cannot count the same interval twice. Equal samples are accepted.

Declared in modules/foundation/time/include/ludus/foundation/time/timers.hpp

#include <ludus/foundation/time/timers.hpp>
class ludus::foundation::time::FrameClock final

Methods

FrameClock

explicit ludus::foundation::time::FrameClock::FrameClock(Duration maximumDelta) noexcept
Configure the accepted delta cap in nanoseconds; zero freezes accepted elapsed time.

Related types: Duration

Declared in modules/foundation/time/include/ludus/foundation/time/timers.hpp

Reset

void ludus::foundation::time::FrameClock::Reset() noexcept
Forget the previous sample; the next Sample establishes a zero-duration baseline.

Declared in modules/foundation/time/include/ludus/foundation/time/timers.hpp

Sample

FrameSample ludus::foundation::time::FrameClock::Sample(Timestamp now) noexcept
Sample elapsed time, retaining the high-water mark on regression and reporting clamp loss.

Related types: FrameSample · Timestamp

Declared in modules/foundation/time/include/ludus/foundation/time/timers.hpp