feat(mirada): zwp_linux_dmabuf — clientes que pintan por GPU
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>
This commit is contained in:
@@ -169,10 +169,12 @@ En modo enlazado el socket de control lo abre el Cerebro (la app
|
||||
|
||||
`wl_compositor`, `xdg_shell` (toplevels y popups), `wl_shm`, `wl_seat`
|
||||
(teclado, y ratón en el backend DRM), `wl_output`, `wl_data_device`
|
||||
(selección) y `xdg-decoration` — fuerza decoración del servidor y no
|
||||
dibuja ninguna, así las ventanas van sin barra de título. Composición
|
||||
con `GlesRenderer` — en `winit` sobre la ventana, en `drm` con un
|
||||
`DrmCompositor` por salida.
|
||||
(selección), `xdg-decoration` — fuerza decoración del servidor y no
|
||||
dibuja ninguna, así las ventanas van sin barra de título — y
|
||||
`zwp_linux_dmabuf`, que deja conectarse a los clientes que pintan por
|
||||
GPU (apps GPUI, navegadores acelerados). Composición con `GlesRenderer`
|
||||
— en `winit` sobre la ventana, en `drm` con un `DrmCompositor` por
|
||||
salida.
|
||||
|
||||
Reusa `mirada-body` para la contabilidad de salidas y superficies, y
|
||||
`mirada-link` para el cable hacia un Cerebro externo. Toda la lógica
|
||||
|
||||
Reference in New Issue
Block a user