Files
games/docs/architecture/009-ENGINE_V1_RENDER_SCENE.md
2026-09-16 10:21:09 +02:00

54 lines
1.4 KiB
Markdown

<!-- file: docs/architecture/009-ENGINE_V1_RENDER_SCENE.md -->
<!-- version: 1 -->
# Scène de rendu Engine V1
## Principe
Le gameplay ne dépend pas de SDL3.
`engine-v1-common` expose un modèle de scène 2D volontairement minimal :
- `RenderColor` ;
- `NormalizedRect` ;
- `RenderRect` ;
- `EngineScene`.
Toutes les géométries sont normalisées dans `[0.0, 1.0]`.
`EngineGame::scene()` produit un snapshot après chaque update. L'implémentation par défaut fournit uniquement un fond sombre, ce qui permet aux jeux non migrés de rester compatibles.
## Backend SDL3
`engine-v1-sdl` :
1. reçoit la scène portable ;
2. récupère la taille de sortie courante du renderer ;
3. convertit les rectangles normalisés en `FRect` physiques ;
4. dessine le fond et les rectangles ;
5. présente la frame.
Le resize Desktop ne modifie donc pas les coordonnées logiques du jeu.
## Baseline Reflex
Le POC Reflex expose une cible rectangulaire jaune.
Un clic/tap ne marque un point que si le pointeur se trouve dans la cible au moment de l'impulsion `Primary`.
Après chaque succès, la cible se déplace selon une séquence déterministe afin que les tests restent reproductibles.
## Limites V1 actuelles
Le modèle ne fournit pas encore :
- texte de production ;
- textures ;
- sprites ;
- audio ;
- transformations ;
- clipping complexe ;
- batching spécialisé.
Ces capacités seront ajoutées uniquement lorsqu'un besoin concret du POC le justifiera.