La interfaz de rogpOS no comienza dibujando un botón. Comienza con el perfil de dispositivo correcto y termina cuando el marco aparece en la pantalla. Entre estos puntos, cada capa tiene una pequeña responsabilidad y prueba propia.
Del botón al píxel
- Entrada física: el kernel recibe el estado del pad direccional, los botones y los joysticks analógicos descritos por el perfil.
- Evento: SDL2 transforma la entrada en eventos consumidos por el bucle del iniciador.
- Enfoque: la pantalla activa decide qué componente recibe la acción. Las reglas de navegación y comerciales permanecen separadas.
- Estado: el modelo actualiza sólo lo necesario para la pantalla actual.
- Composición: Los componentes dibujan texto, iconos, máscaras y superficies utilizando el renderizador compartido.
- Presentación: SDL2 entrega la trama al controlador KMSDRM; DRM y el perfil del panel traen este marco a la pantalla.
Los bordes que mantienen legible el lanzador
- Aplicación: ciclo de vida, cambio de pantalla y bucle principal.
- Pantallas: composición y navegación de cada pantalla. No deben ejecutar procesos ni tener integraciones de sistemas.
- Componentes: elementos reutilizables, sin reglas de negocio ocultas.
- Núcleo: Biblioteca comprobable fuera de la pantalla, IA, configuración y otras integraciones.
- Arranque y emulación: inicio del sistema y sesión de juego en límites explícitos.
- Interfaz de usuario: tokens, renderizador, foco, íconos y primitivas compartidas.
El lanzador gráfico es el launcher-v2, compilado como rogpos-shell. El iniciador de texto de recuperación es otra forma y solo debería aparecer cuando el sistema ingresa deliberadamente a este modo.
Marco, estado y tiempo.
El bucle necesita procesar la entrada, actualizar el estado y renderizar dentro del presupuesto del marco. Para 60 Hz, este presupuesto es de unos 16,67 ms. Esto no significa rediseñar o releer todo en cada pasada. Los índices, texturas y listas visibles deben limitarse, reutilizarse o actualizarse cuando cambia la fuente.
KMSDRM no está en pantalla completa
KMSDRM es el controlador de vídeo SDL2 para acceso directo al subsistema DRM en Linux. La sesión necesita obtener DRM master para configurar y dibujar en la pantalla. El dispositivo DRM elegido también importa cuando el sistema expone más de uno.
Aún así, una llamada exitosa o un cierre limpio no prueba que el panel haya mostrado la imagen. La prueba completa incluye modo, conector, tiempos, polaridades, iluminación y observación física.
Buenas prácticas de interfaz
- enfoque visible y predecible;
- botón b como resultado coherente;
- estados vacíos, de carga y de error dibujados como parte del flujo;
- componentes con una API pequeña, sin decenas de banderas;
- E/S y procesos fuera de la capa visual;
- caché con límite conocido e invalidación explícita;
- texto legible con resolución nativa de 640 × 480;
- animación corta, interrumpible y eliminada con
prefers-reduced-motion.
Cómo probar un cambio
Un cambio de interfaz pasa por verificación de arquitectura, contrato visual, pruebas de lanzador e inspección de rootfs. Luego, es necesario observar en el dispositivo: enfoque, entrada, primer fotograma, regreso de la sesión de juego y ausencia de regresión en el camino de recuperación.