54 lines
1.4 KiB
Markdown
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.
|