El kernel deja de colocar las ventanas a mano: las tesela. El motor es mirada-layout — el mismo nucleo no_std que ordena el compositor Wayland de brahman, enlazado por path cruzando la frontera de workspace. Es el primer consumo REAL del nucleo compartido brahman <-> renaser. - kernel/compositor.rs: enlaza mirada-layout y calcula un marco por app con el algoritmo MasterStack, dentro del area de pantalla. - consola::volcar_marco centra el fotograma natural de la app dentro de su marco teselado (antes lo depositaba en region.x/y fijos). - ContextoCapacidades lleva marco + natural_ancho/alto; sys_render_frame valida el fotograma contra el tamaño natural. - cargar_userspace tesela con el compositor y pinta el escenario antes de encender las apps. Las apps NO cambian: el compositor reordena la pantalla sin que ninguna toque una instruccion. Verificado en QEMU (screendump): las cinco apps de genesis teseladas en MasterStack — hola como ventana maestra, el resto apiladas a la derecha, cada lienzo centrado en su panel. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2.5 KiB
renaser — Fase 8 :: El compositor teselante
Plan de ataque. Para el estado general ver ROADMAP.md; para la arquitectura,
ARCHITECTURE.md.
El objetivo
Hasta la Fase 7, cada aplicación llevaba su región escrita a mano en el
Manifiesto de Génesis: cuatro coordenadas fijas (region_x, region_y,
region_ancho, region_alto). El kernel las leía y componía cada app en su
rectángulo, inmóvil — una disposición rígida, decidida en la siembra.
La Fase 8 entrega esa decisión a un COMPOSITOR. El kernel deja de colocar las
ventanas a mano: las tesela. El motor del teselado es mirada-layout — el
mismo núcleo no_std que ordena las ventanas del compositor Wayland de
brahman, enlazado por path cruzando la frontera de workspace. Una sola lógica
de teselado sirve a dos mundos: el escritorio sobre Linux y el kernel
bare-metal.
Sub-fases
8a — El compositor tesela — ✅ HECHA
compositor.rs— enlazamirada-layouty calcula un marco por app con el algoritmoMasterStack, dentro del área de pantalla (todo menos la franja superior reservada a la consola).- El kernel centra el fotograma natural de cada app dentro de su marco teselado; las apps conservan su tamaño natural y no cambian una instrucción.
EntradaApp.region_ancho/altopasa a significar el tamaño NATURAL del lienzo de la app;region_x/yquedan vestigiales — el compositor decide la posición.
8b — Teselado interactivo
- El teclado cicla en caliente los siete modos de
mirada-layout(MasterStack,CenteredMaster,Spiral,Grid,Columns,Rows,Monocle). - Re-teselar exige re-componer: las apps que sólo pintan en
initnecesitan una señal de redibujado, o el kernel debe conservar su último fotograma para recomponerlo en el marco nuevo.
8c — Foco y Workspace
- Adoptar el
Workspacedemirada-layout: foco, orden-Z, alta y baja de ventanas en vivo. - Una ventana enfocada, resaltada; el teclado mueve el foco y promueve apps al área maestra.
Estructura de archivos
| archivo | estado | rol en la Fase 8 |
|---|---|---|
kernel/src/compositor.rs |
nuevo (8a) | teselado con mirada-layout |
kernel/src/consola.rs |
a modificar (8a) | composición centrada en el marco |
kernel/src/wasm/mod.rs |
a modificar (8a) | marco + tamaño natural |
kernel/src/wasm/env.rs |
a modificar (8a) | validación contra el natural |
kernel/src/main.rs |
a modificar (8a) | el compositor en el arranque |