gioser

tawasuyu/llimphi

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

Rust 484Markdown 258TOML 131RON 38118 Definiciones

⎇ 92dd0e5bfb2ca4456006da99437f4100e156d856 llimphi-compositor/Cargo.toml TOML · 35 líneas · 1.9 KB Historia crudo

fix: dev-deps internas path-only (se descartan al publicar; sin ciclos de orden) 92dd0e5bf · Sergio ·

1[package]
2name = "llimphi-compositor"
3version.workspace = true
4edition.workspace = true
5license.workspace = true
6authors.workspace = true
7publish.workspace = true
8repository.workspace = true
9description = "llimphi-compositor — el núcleo declarativo de Llimphi sin winit: el árbol `View<Msg>`, el mount sobre taffy, el paint a `vello::Scene` y el hit-test. No depende de llimphi-hal ni de una surface concreta, así que la misma composición sirve sobre winit (llimphi-ui) o, a futuro, sobre el framebuffer del kernel wawa. `wgpu` entra sólo por la firma de `GpuPaintFn` (tipos, no windowing)."
10
11[dependencies]
12llimphi-layout = { path = "../llimphi-layout", version = "0.1.0" }
13llimphi-text = { path = "../llimphi-text", version = "0.1.0" }
14vello = { workspace = true }
15# Sólo para los tipos de la firma de GpuPaintFn (Device/Queue/Encoder/View).
16# wgpu NO depende de winit — el compositor sigue libre de windowing.
17wgpu = { workspace = true }
18
19[dev-dependencies]
20# Volcado headless del paint a PNG (llvmpipe) para VER sombra/gradiente/borde
21# sin levantar ventana. Sólo capas inferiores — no llimphi-ui (sin ciclo).
22llimphi-hal = { path = "../llimphi-hal" }
23llimphi-raster = { path = "../llimphi-raster" }
24llimphi-theme = { path = "../llimphi-theme" }
25png = { workspace = true }
26pollster = { workspace = true }
27# Widgets REALES para el showreel: el `View<Msg>` que devuelven es el mismo
28# tipo (`llimphi_compositor::View`, re-exportado por llimphi-ui), así que
29# montan con el mount/paint/measure de este mismo crate. Dev-only → sin ciclo
30# en el grafo normal (llimphi-ui depende de este crate, no al revés).
31llimphi-widget-switch = { path = "../widgets/switch" }
32llimphi-widget-slider = { path = "../widgets/slider" }
33llimphi-widget-progress = { path = "../widgets/progress" }
34llimphi-widget-button = { path = "../widgets/button" }
35llimphi-widget-segmented = { path = "../widgets/segmented" }