7b5c583a98
Fase 1 del plan «shell»: para que carmen pueda hospedar a `shuma-shell` (y a cualquier app GPUI o navegador acelerado) hace falta que los clientes con GPU puedan compartir su búfer de vídeo. carmen sólo hablaba `wl_shm` (búferes de software) — por eso `foot` corría pero las apps GPUI salían en negro. - `App` lleva un `DmabufState`; `impl DmabufHandler` con `dmabuf_imported` que acepta el búfer (el `GlesRenderer` ya importa DMA-BUF al componer, vía `ImportAll`, así que la validación real ocurre al pintar). - `delegate_dmabuf!(App)`. - `announce_dmabuf` crea el global con los formatos de `dmabuf_formats()` del renderer — se llama en ambos backends una vez creado el renderer. Pendiente del plan: Fase 2 (`wlr-layer-shell`) y Fase 3 (modo launcher de `shuma-shell` — barra + input + cajón de resultados). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>