pub struct PassState {
pub used_ids: IdMap<Rect>,
pub widgets: WidgetRects,
pub layers: HashMap<LayerId, PerLayerState>,
pub tooltips: TooltipPassState,
pub available_rect: Rect,
pub unused_rect: Rect,
pub used_by_panels: Rect,
pub scroll_target: [Option<ScrollTarget>; 2],
pub scroll_delta: (Vec2, ScrollAnimation),
pub accesskit_state: Option<AccessKitPassState>,
pub highlight_next_pass: IntSet<Id>,
pub debug_rect: Option<DebugRect>,
}Expand description
State that is collected during a pass, then saved for the next pass, and then cleared.
(NOTE: we usually run only one pass per frame).
One per viewport.
Fields§
§used_ids: IdMap<Rect>All Ids that were used this pass.
widgets: WidgetRectsAll widgets produced this pass.
layers: HashMap<LayerId, PerLayerState>Per-layer state.
Not all layers registers themselves there though.
tooltips: TooltipPassState§available_rect: RectStarts off as the screen_rect, shrinks as panels are added.
The crate::CentralPanel does not change this.
unused_rect: RectStarts off as the screen_rect, shrinks as panels are added.
The crate::CentralPanel retracts from this.
used_by_panels: RectHow much space is used by panels.
scroll_target: [Option<ScrollTarget>; 2]The current scroll area should scroll to this range (horizontal, vertical).
scroll_delta: (Vec2, ScrollAnimation)The current scroll area should scroll by this much.
The delta dictates how the content should move.
A positive X-value indicates the content is being moved right, as when swiping right on a touch-screen or track-pad with natural scrolling.
A positive Y-value indicates the content is being moved down, as when swiping down on a touch-screen or track-pad with natural scrolling.
accesskit_state: Option<AccessKitPassState>§highlight_next_pass: IntSet<Id>Highlight these widgets the next pass.
debug_rect: Option<DebugRect>Implementations§
Source§impl PassState
impl PassState
pub(crate) fn begin_pass(&mut self, content_rect: Rect)
Sourcepub(crate) fn available_rect(&self) -> Rect
pub(crate) fn available_rect(&self) -> Rect
How much space is still available after panels has been added.
Sourcepub(crate) fn allocate_left_panel(&mut self, panel_rect: Rect)
pub(crate) fn allocate_left_panel(&mut self, panel_rect: Rect)
Shrink available_rect.
Sourcepub(crate) fn allocate_right_panel(&mut self, panel_rect: Rect)
pub(crate) fn allocate_right_panel(&mut self, panel_rect: Rect)
Shrink available_rect.
Sourcepub(crate) fn allocate_top_panel(&mut self, panel_rect: Rect)
pub(crate) fn allocate_top_panel(&mut self, panel_rect: Rect)
Shrink available_rect.
Sourcepub(crate) fn allocate_bottom_panel(&mut self, panel_rect: Rect)
pub(crate) fn allocate_bottom_panel(&mut self, panel_rect: Rect)
Shrink available_rect.