pub type GpuPaintFn = Arc<dyn Fn(&Device, &Queue, &mut CommandEncoder, &TextureView, PaintRect, (u32, u32)) + Send + Sync>;Expand description
Callback de pintura GPU directo, sin vello intermedio. Recibe el
device/queue ya construidos por el runtime más un
CommandEncoder y la TextureView del frame (la intermediate
Rgba8Unorm de WinitSurface), todo durante el paint del nodo.
El caller abre su propio begin_render_pass con LoadOp::Load para
no sobrescribir lo que ya pintó vello, dibuja sus primitivas y
cierra el pass. El runtime se encarga de dispatchear (queue.submit)
el encoder ya con todas las pasadas de todos los nodos acumuladas —
es un solo submit por frame.
Orden de pintura en Fase 1: todos los gpu_painter corren
DESPUÉS de la pasada completa de vello (fill, image, painter,
text) sobre el mounted tree. Entre sí mantienen el orden DFS
pre-orden. Si una app necesita pintar texto encima del render
GPU directo, la forma idiomática es ponerlo en App::view_overlay,
que se renderiza como una segunda Scene de vello encima de todo.
Pensado para apps con volumen masivo de primitivos (cosmos
starfield Gaia, tinkuy particle viewer, nakui viewport, pineal
denso) — el hook que paga el costo de mantener pipelines WGSL
propias en llimphi-raster (ver 02_ruway/llimphi/SDD.md
§“Roadmap — GPU directo wgpu”).
Aliased Type§
pub struct GpuPaintFn { /* private fields */ }