feat(renaser): Fase 13 — ratón, puntero y arrastre de flotantes
renaser dialogaba sólo con el teclado; las ventanas flotantes nacían en cascada y allí se quedaban. La Fase 13 trae el ratón. - Driver `drivers/raton`: el ratón PS/2 cuelga del dispositivo auxiliar del 8042 + IRQ12. El driver despierta el aux, programa su IRQ, le ordena reportar, ensambla paquetes de 3 bytes con guarda del bit-3. Posición como atómicos, eventos como cola lock-free — el mismo guardarraíl que el teclado. - El puntero, capa de PRESENTACIÓN: `Pantalla::estampar_puntero` pinta un sprite de flecha 12×18 sobre el framebuffer después de copiar el lienzo. El lienzo nunca lo contiene — hace de save-under natural—. - Compositor: `atender_raton` drena eventos. Botón bajando es un clic-para-enfocar consistente con `mover_foco` (silencia bocina, alza si flota). Si la enfocada flota, arranca un arrastre con el desfase de agarre; el botón sostenido la sigue al puntero; al soltar, termina. - `refrescar_puntero` reestampa el framebuffer si el puntero se movió en una vuelta tranquila en que ninguna app pintó. Verificado en QEMU (mouse_move / mouse_button del monitor): el puntero aparece al arrancar, se mueve por la pantalla, un clic sobre pulso le da el foco, y un arrastre con el botón sostenido mueve la flotante de la cascada al centro-abajo. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -211,6 +211,23 @@ se suma a la matriz de capacidades. Verificada en QEMU.
|
||||
- Verificado por captura: la onda cuadrada de la bocina, enrutada a un WAV,
|
||||
late a la frecuencia media de la escala.
|
||||
|
||||
## Fase 13 — ratón, puntero y arrastre de flotantes (completada)
|
||||
|
||||
Hasta la Fase 12 renaser dialogaba sólo con el teclado; las ventanas flotantes
|
||||
nacían en cascada y allí se quedaban. La Fase 13 trae el ratón: un puntero,
|
||||
clic-para-enfocar y arrastre del marco de las flotantes. Verificada en QEMU
|
||||
(`mouse_move` / `mouse_button` del monitor).
|
||||
|
||||
- Driver `drivers/raton`: el ratón PS/2 cuelga del dispositivo auxiliar del
|
||||
8042 + la IRQ12. El driver despierta el aux, programa su IRQ, le ordena
|
||||
reportar, ensambla paquetes de 3 bytes con guarda del bit-3.
|
||||
- El puntero como capa de presentación: `Pantalla::estampar_puntero` pinta un
|
||||
sprite de flecha de 12×18 sobre el framebuffer, DESPUÉS de copiar el
|
||||
lienzo. El lienzo nunca lo contiene — hace de save-under natural—.
|
||||
- El compositor gana `atender_raton`: botón bajando → clic-para-enfocar (sobre
|
||||
cualquier ventana viva); si la enfocada flota, arranca un ARRASTRE con el
|
||||
desfase de agarre; el botón sostenido la sigue al puntero; al soltar, fin.
|
||||
|
||||
Líneas abiertas posteriores: reciclado de las ranuras de ventana cerradas;
|
||||
audio con varias voces (PCM) más allá del tono único de la bocina.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user