use iris::prelude::*; const ROWS: usize = 1000; pub(crate) fn build( rsc: &mut Rsc, ui_state: &mut impl HasRoot, ) -> WeakWidget { let mut span = Span::empty(Dir::DOWN); for _ in 0..ROWS { let img = iris::image::DynamicImage::new_rgba8(32, 32); let widget = image::(img)(rsc); let widget = rsc.ui_mut().widgets.add_strong(widget); span.push(widget.any()); } let span = rsc.ui_mut().widgets.add_strong(span); let span_weak = span.weak(); let root = rsc .ui_mut() .widgets .add_strong(ScrollArea::new(span.any(), Axis::Y, Pin::End)); ui_state.set_root(rsc, root.any()); span_weak }