0.1.0-0-pre.11-fix.5

This commit is contained in:
2026-09-16 22:58:48 +02:00
parent 9386372e51
commit 9197758184
9 changed files with 181 additions and 90 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/architecture/004-INPUT_AND_CONTROLS.md -->
<!-- version: 6 -->
<!-- version: 7 -->
# Abstraction des entrées et contrôles
@@ -97,18 +97,18 @@ Pour souris et tactile :
Reflex conserve son impulsion `Primary` sur `Down` et reste donc indépendant de la reconnaissance du swipe.
## Sortie utilisateur
## Requête de sortie
Desktop :
La plateforme ne décide plus directement de terminer un jeu. Elle traduit l'événement physique en `QuitRequest` :
- `Escape` quitte proprement la boucle SDL ;
- la fermeture de fenêtre continue d'émettre `Quit`.
- fermeture de fenêtre → `QuitSource::WindowClose` ;
- `Escape` Desktop → `QuitSource::Escape` ;
- Back Android → `QuitSource::PlatformBack`.
Android :
`EngineGame::quit_requested` retourne un `QuitDecision`. Le comportement par défaut est `QuitDecision::Exit`.
- `SDL_ANDROID_TRAP_BACK_BUTTON=1` permet de traiter `AcBack` comme sortie propre ;
- un contrôle visuel de fermeture est rendu en haut à droite ;
- un tap/clic dans cette zone quitte la boucle avant d'alimenter le gameplay ;
- la boucle retourne ensuite normalement vers `SDL_main`.
Un jeu peut retourner `QuitDecision::Continue` après avoir modifié son état afin de mettre la partie en pause, demander confirmation, revenir à un écran précédent, préparer un Hall of Fame, sauvegarder ou commencer une action avant une sortie ultérieure.
Le gameplay ne dépend pas de cette logique de cycle de vie.
Sur Android, `SDL_ANDROID_TRAP_BACK_BUTTON=1` reste activé. Le runtime reconnaît le Back via `Keycode::AcBack` ou `Scancode::AcBack`.
Le contrôle `X` SDL spécifique Android de `0-pre.11.fix.4` est supprimé : le contrôle système Back est la frontière plateforme de référence. Une future UI de confirmation ou navigation appartient au jeu ou à une couche UI moteur.