Frame Lifecycle
This chapter connects the main systems across a single Bevy frame.
PreUpdate
univis_picking_backend- converts pointer position into world space
- evaluates SDF intersection against interactive entities
- respects ancestor clipping through
UClip - emits
PointerHitsfor Bevy picking observers
Update
- widget systems update state, sync visuals, and emit messages
- scroll behavior, panel resize, and similar interaction systems run here
- text systems refresh text layout inputs
PostUpdate
Critical layout order:
update_layout_hierarchyupward_measure_pass_cacheddownward_solve_pass_safe
After layout:
update_materials_optimizedsyncsUNode,ComputedSize,UBorder, and related data into materials
Why The Order Matters
- any
Updatechange, such as panel resize or input state, must be reflected before the frame is rendered - cache and invalidation run before measurement to avoid unnecessary work
- rendering depends on final
ComputedSizeand resolved transforms