Expand description
Why a frame was drawn: two readings a view can take of the frame it is building, for an app that keeps a ledger of its frames and wants to know why one ran with nothing on screen moving.
FrameCause, the set of reasons that reached the window since the last frame began. The core records the input it was handed (Core::handle_input) and whether the last frame left one owed; the driver adds what only it sees (Core::note_frame_cause) — a wake, a resize, the caret’s blink, a surface retry, the OS events that never become input. Always kept: it is a few ORs a frame.OwedBy, who holds a frame the last one left owed: the nodes whose transition is mid-flight, the cycles running, the departures playing, the containers easing a scroll, the held drag’s scroller, theanimatenodes, and whererequest_framewas called from.Core::owedwith names. Off unlessCore::set_frame_traceasked for it, and taken at the start ofbegin_frame— the only moment the last frame’s tree, which names the holders, and the stores’ state, which says who they are, are both still there.
The same switch keeps a digest of every finished frame’s display list,
so Core::frame_unchanged says whether a frame drew exactly what the
one before it drew: a frame that changed nothing on screen.
Structs§
- Frame
Cause - Why a frame was drawn: every reason that reached the window between
the start of the last frame and the start of this one.
Read from a view as
Core::frame_cause. A set, because a frame answers everything that asked since the last one — a keystroke and the caret’s blink, a wheel and the transition it started. - Frame
Holder - One thing that holds an owed frame, named for a person: see
OwedBy. - Frame
Request - Where a frame was asked for: a
Core::request_framecall, or one the core makes for itself. - OwedBy
- Who holds the frame the last one left owed:
Core::owed, named. Each list is empty when its kind incrate::Owedis false, and names what made it true when it is.