Skip to main content

Crate llimphi_text

Crate llimphi_text 

Source
Expand description

llimphi-text — Texto sobre vello vía parley.

parley hace shaping completo (bidi, ligatures, kerning), line break y alineación; fontique resuelve fuentes del sistema con fallback CJK/emoji. Aquí lo envolvemos en una API mínima centrada en el caso común: un bloque de texto con color uniforme, ancho máximo opcional y alineación.

Re-exports§

pub use parley;
pub use vello;
pub use vello::peniko;

Structs§

CacheStats
Estadísticas del caché de shaping (evidencia/benchmark). entries es el total vivo entre las dos generaciones.
Measurement
Medidas resultantes de un layout.
RunBrush
Brush por-run para texto multicolor. Newtype sobre Color porque parley exige que el brush genérico implemente Default (que Color no garantiza); aquí proveemos uno explícito (negro opaco) que nunca se ve en la práctica: todo run lleva su color o el default_color del bloque.
TextBlock
Especificación de un bloque de texto a rasterizar.
TextSpan
Un span de RichText: rango de bytes [start, end) + overrides de estilo (style). Los rangos pueden superponerse — parley aplica los StyleProperty en orden de inserción, así el caller debería pushar de menor a mayor especificidad.
TextSpanStyle
Overrides de estilo aplicables a un rango de bytes dentro de un bloque de texto, para Typesetter::layout_spans (RichText). Cada campo es opcional: None hereda del default del bloque. La granularidad es por bytes (convención de parley), igual que el runs multicolor.
Typesetter
Estado compartido del motor de texto. Una instancia por proceso es lo recomendado: FontContext cachea la base de fuentes y LayoutContext reutiliza allocaciones entre layouts.

Enums§

Alignment
Alineación horizontal del bloque dentro de su ancho máximo.

Constants§

MONOSPACE
Nombre de familia de la fuente monoespaciada embebida. Pasalo como font_family: Some(llimphi_text::MONOSPACE) en un TextBlock (o el font_family de layout) para render de ancho fijo garantizado.
MONO_FONT_BYTES
Bytes de la fuente monospace embebida (Liberation Mono TTF). Pública para que otros crates (p. ej. llimphi-widget-terminal, que necesita rasterizar glifos para su atlas GPU) usen exactamente la misma fuente que el render normal, sin volver a embeber el archivo.
UI_SANS
Nombre de familia de la fuente de UI embebida (Inter). Es el default proporcional cuando un bloque no especifica font_family (la enganchamos como primera familia del genérico sans-serif). Exponemos el nombre por si un caller quiere pedirla explícitamente.

Functions§

draw_block
Rasteriza el bloque en scene haciendo shaping una sola vez. Equivale a layout_block + draw_layout con block.origin.
draw_layout
Pinta un layout ya resuelto en scene con color y un offset origin (esquina superior-izquierda del bloque). No alloca: los glifos van directo del iterador de parley al builder de vello.
draw_layout_brush_xf
Igual que draw_layout_xf pero con un Brush arbitrario en vez de un color sólido: permite rellenar los glifos con un gradiente o una imagen (p. ej. CSS background-clip: text). El brush se interpreta en el espacio local del layout (origen 0,0) y transform lo lleva al lugar final — así un gradiente construido en coords (0,0)-(w,h) queda alineado con los glifos. Para texto normal usá draw_layout_xf (solid = máxima compat).
draw_layout_runs
Pinta un layout multicolor (Typesetter::layout_runs): cada glyph_run usa el color de su propio brush (RunBrush) en vez de un color uniforme. origin es la esquina superior-izquierda del bloque.
draw_layout_runs_xf
Igual que draw_layout_runs pero con una afín completa en vez de sólo un desplazamiento — el equivalente multicolor de draw_layout_xf. Lo necesita el compositor para que el texto multicolor herede la transformación acumulada del subárbol (scroll/rotación del padre): sin esto, el texto con runs se pintaba en coords de layout crudas, ignorando el transform, y se desalineaba del resto (p. ej. el cuerpo coloreado del shell no seguía el scroll del panel). El origen del layout (0,0) lo mapea transform; las posiciones de glifo se aplican en ese espacio.
draw_layout_xf
Igual que draw_layout pero con una afín completa en vez de sólo un desplazamiento: permite pintar texto girado/escalado (p. ej. dentro de un marco rotado en una presentación espacial). El origen del layout (0,0) es el que mapea transform; las posiciones de glifo se aplican en ese espacio.
layout_block
Construye el layout (shaping + line break + alineación) listo para medir y/o pintar. Usá esta API cuando necesitás el alto antes de elegir el origen (p. ej. centrado vertical) y no querés repetir el shaping en el draw: medís sobre el layout retornado y luego lo pasás a draw_layout.
measure
Mide sin pintar. Atajo de layout_block + measurement para llamadores que sólo necesitan el bounding box.
measurement
Devuelve las medidas de un layout ya resuelto. Equivalente conceptual a (layout.width(), layout.height()) pero envuelto en Measurement.