20 float time()
const {
return time_; }
23 float dt()
const {
return dt_; }
26 uint64_t
frame()
const {
return frame_; }
80 std::function<bool(
float dt)> callback;
83 struct ActivitySubscriber {
85 std::function<void(
float dt)> callback;
89 std::vector<Subscriber> subscribers_;
90 std::vector<ActivitySubscriber> activity_subscribers_;
95 std::shared_ptr<const void> alive_ = std::make_shared<const char>(
'\0');
Definition frame_clock.hpp:14
void unsubscribe(int id)
Remove a subscription by ID.
int subscribe_activity(std::function< void(float dt)> callback)
Subscribe an activity probe.
float time() const
Current elapsed time (seconds since first tick).
Definition frame_clock.hpp:20
void reset()
Reset all state (for testing).
uint64_t frame() const
Monotonic frame counter.
Definition frame_clock.hpp:26
bool has_active_subscribers() const
True if any subscribers are still active (drives repaint/invalidation).
bool has_activity_subscribers() const
True if any activity probe is registered.
void tick(float dt)
Advance the clock by dt seconds. Called once per frame by the host.
void unsubscribe_activity(int id)
Remove an activity subscription by id.
int subscribe(std::function< bool(float dt)> callback)
Subscribe to frame ticks.
float dt() const
Delta since last tick.
Definition frame_clock.hpp:23
std::weak_ptr< const void > liveness_token() const
Liveness token for holders that keep a raw FrameClock*.
Definition frame_clock.hpp:75
void pump_activity(float dt)
Fire every activity probe with dt.
Hover-cursor tracking for platform window hosts.
Definition fwd.hpp:27