ClutterFrameClock
state diagram.
stateDiagram
Init --> Scheduled/ScheduledNow : schedule update() -> now
Idle --> Scheduled/ScheduledNow : schedule update() -> given presentation time
Scheduled/ScheduledNow --> Dispatching : target time hit
Dispatching --> PendingPresented : queued page flip
Dispatching --> Idle : no queued page flip
PendingPresented --> Scheduled/ScheduledNow : page flipped, if recent schedule update
PendingPresented --> Idle : page flipped