pub fn build_visible_text_layout(
buffer: &TextBuffer,
viewport: EditorViewport,
style: EditorStyle,
layout_cache: &mut LayoutCache,
metrics_cache: &mut ParagraphMetricsCache,
text_system: &mut TextSystem,
) -> VisibleTextLayoutExpand description
Builds visible paragraph runs for the current viewport.
This is equivalent to build_visible_text_layout_filtered with no hidden
paragraphs. No-wrap mode uses a virtualized shaping path; soft-wrap mode must
shape every paragraph to determine wrapped heights. Paragraph trailing \n
bytes are excluded from run layouts and source ranges.
ยงExamples
use ailloli_ui_core::Rect;
use ailloli_ui_editor::{layout::{build_visible_text_layout, LayoutCache, ParagraphMetricsCache}, EditorConfig, EditorStyle, EditorViewport};
use ailloli_ui_text::{TextBuffer, TextEditState, TextSystem};
let buffer = TextBuffer::from_string("one\ntwo");
let viewport = EditorViewport::new(Rect::new(0.0, 0.0, 120.0, 60.0), EditorConfig::default(), &TextEditState::new());
let mut layouts = LayoutCache::default();
let mut metrics = ParagraphMetricsCache::default();
let visible = build_visible_text_layout(&buffer, viewport, EditorStyle::default(), &mut layouts, &mut metrics, &mut TextSystem::new());
assert_eq!(visible.runs.iter().map(|run| run.index).collect::<Vec<_>>(), [0, 1]);
assert!(!visible.used_fast_path);