# Clutter Frame scheduling

`ClutterFrameClock` state diagram.

```mermaid
stateDiagram
    Init --> Scheduled : schedule update() -> now
    Idle --> Scheduled : schedule update() -> given presentation time
    Scheduled --> Dispatching : target time hit
    Dispatching --> PendingPresented : queued page flip
    Dispatching --> Idle : no queued page flip
    PendingPresented --> Scheduled : page flipped, if recent schedule update
    PendingPresented --> Idle : page flipped
```