tawasuyu

tawasuyu/llimphi

Sovereign retained-mode GPU UI framework in Rust (wgpu+vello+taffy+parley), Elm loop, 40+ widgets.

Rust 660Markdown 302TOML 157RON 312382 Definiciones

⎇ main llimphi-glifos/Cargo.toml TOML · 28 líneas · 1.7 KB Historia crudo

chore: refresco desde el monorepo — vello 0.9 / wgpu 29, 120 miembros d251eb32b · Sergio ·

1[package]
2name = "llimphi-glifos"
3version.workspace = true
4edition.workspace = true
5license.workspace = true
6authors.workspace = true
7publish.workspace = true
8description = "llimphi-glifos — atlas de cobertura de glifos para el camino GPU-directo. Rasteriza cada glifo una sola vez a un mapa de 8 bits, lo empaqueta en una textura por estantes y devuelve el rect UV + la colocación. Es lo que le faltaba a `llimphi_raster::GpuBatch` para poder pintar texto: el batcher instanciado sabe de quads, no de contornos."
9
10[dependencies]
11# parley DIRECTO y con la MISMA declaración que `llimphi-text`: los dos crates
12# tienen que ver el mismo `parley::Layout`, y una versión suelta acá metería dos
13# parley en el grafo — el error más desorientador posible («expected Layout,
14# found parley::Layout»). Sin defaults por la misma razón que allá: su
15# `default = ["system"]` arrastra fontconfig/objc2/windows por fontique.
16#
17# Con `std` porque este crate es de anfitrión: rasteriza para una GPU, que en
18# wawa no existe. Sin él, el skrifa que parley trae por dentro queda `no_std` y
19# no compila (le faltan `sqrt`/`hypot`/`round` de f32) — el modo `libm` es para
20# el camino bare-metal, y éste no lo es.
21parley = { version = "0.6", default-features = false, features = ["std"] }
22
23# swash con `scale` + `render`, que es lo único que este crate agrega al árbol.
24# parley ya lo trae —lo usa para shapear— pero con `default-features = false`,
25# así que el *rasterizador* no está enlazado hasta que alguien lo pida. Este
26# crate es quien lo pide, y ésa es la razón de que sea un crate aparte y no un
27# módulo de `llimphi-text`: nadie más quiere `yazi` ni `zeno` en su binario.
28swash = { version = "0.2", default-features = false, features = ["std", "scale", "render"] }