|
| | DraftRenderer (SpriteBatch &batch, const TextureAtlas &atlas, TextureCache &cache) |
| void | render (const core::LevelDraft &draft, const Camera2D &camera, bool showGrid, const std::optional< std::pair< core::GridPosition, core::GridPosition > > &highlight, const LinkOverlayState &linkOverlay, RenderMode mode, bool showTextureOverrides=false, float deltaSeconds=0.0f, const LayerVisibility &visibility={}, const PlaneVisibility &planeVisibility={}) |
| | Rend le brouillon avec la caméra donnée (reconstruit la scène si invalidée).
|
| void | setPlanesDirectory (std::filesystem::path directory) |
| | Fixe le dossier où résoudre les images de plans (Levels/Plans), comme hmi::SpriteRenderer::setPlanesDirectory.
|
| void | invalidate () noexcept |
| | Marque la scène comme périmée : elle sera reconstruite au prochain render (à appeler après toute mutation du brouillon — peinture, undo/redo, chargement, redimensionnement).
|
| const ComposedScene & | lastScene () const noexcept |
| void | setSkins (const SkinCatalog *skins, std::string skinSet={}) |
| | Désigne le catalogue de skins et le jeu à utiliser en mode Texture (LOT-42).
|
|
| void | rebuild (const core::LevelDraft &draft) |
| void | composeGrid (const core::LevelDraft &draft) |
| | Compose la grille de repère (frontières de cases + de salles) sur le calque d'édition.
|
| void | composeCameraFraming (const core::LevelDraft &draft) |
| | Compose la prévisualisation du cadrage de caméra du niveau (EX-EDIT-028, LOT-64) sur le calque d'édition : le cadre du niveau entier, la grille de salles à taille résolue (hmi::RoomGrid), ou le rectangle visible et la zone morte matérialisée du mode suivi (centré sur l'entrée).
|
| void | composeLinks (const core::LevelDraft &draft, const LinkOverlayState &overlay) |
| | Compose les liens de mécanismes (flèches déclencheur → cible) sur le calque d'édition.
|
| SpriteQuad | solidOverlayQuad (const core::Rect &rect, float r, float g, float b, float a) const |
| | Compose la course aller-retour de chaque danger mobile (EX-GP-051) sur le calque Compose les poignées de handles (carrés double ton, même patron que celles des décors).
|
| void | composeHighlight (const core::GridPosition &minimum, const core::GridPosition &maximum) |
| | Compose le voile d'aperçu d'une zone (outil Rectangle/Sélection) sur le calque d'édition.
|
| void | composeTextureOverrideMarkers (const core::LevelDraft &draft) |
| | Signale les cases portant une surcharge de texture par instance sur le calque d'édition (EX-EDIT-043, LOT-45).
|
Dessine la grille d'un core::LevelDraft en cours d'édition.
Réutilise le pipeline de rendu du jeu : chaque tuile non vide du brouillon devient une entité (Transform + Sprite) d'un core::World interne, composée par hmi::composeWorldSprites (lecture seule, EX-ARCH-012). Le core::World n'est reconstruit que lorsque le brouillon change (invalidate()), pas à chaque frame. Les blocs à taille réduite sont dessinés à leur échelle réelle (core::tileVisualScale), comme en jeu — cohérence visuelle stricte.
Depuis LOT-40, toutes les primitives d'une image (tuiles, grille de repère, liens de mécanismes, aperçu de sélection) sont composées dans une seule hmi::ComposedScene puis soumises en bloc : les aides d'édition portent le calque RenderLayer::EditorOverlay, qui les place au-dessus de tout le reste par construction plutôt que par l'ordre des appels de dessin. La liste obtenue est donc inspectable sans GPU (EX-NFR-004) et soumise au culling (EX-NFR-005).
Compose la prévisualisation du cadrage de caméra du niveau (EX-EDIT-028, LOT-64) sur le calque d'édition : le cadre du niveau entier, la grille de salles à taille résolue (hmi::RoomGrid), ou le rectangle visible et la zone morte matérialisée du mode suivi (centré sur l'entrée).
Composée inconditionnellement, comme les liens de mécanismes et les poignées de décors — pas une aide de placement (showGrid), une information sur ce que montrera la caméra en jeu.
| void hmi::DraftRenderer::render |
( |
const core::LevelDraft & | draft, |
|
|
const Camera2D & | camera, |
|
|
bool | showGrid, |
|
|
const std::optional< std::pair< core::GridPosition, core::GridPosition > > & | highlight, |
|
|
const LinkOverlayState & | linkOverlay, |
|
|
RenderMode | mode, |
|
|
bool | showTextureOverrides = false, |
|
|
float | deltaSeconds = 0.0f, |
|
|
const LayerVisibility & | visibility = {}, |
|
|
const PlaneVisibility & | planeVisibility = {} ) |
Rend le brouillon avec la caméra donnée (reconstruit la scène si invalidée).
Si showGrid, superpose la grille de repère (frontières de cases + frontières de salles) — aide au placement, équivalent de la bascule F10 de l'éditeur historique (EX-EDIT-023). Si highlight est présent, met en surbrillance la zone (bornes min/max incluses) — aperçu de l'outil Rectangle/Sélection. linkOverlay pilote l'affichage des liens de mécanismes (flèches, trait provisoire, surbrillance — EX-IHM-030). mode choisit le rendu Physique ou Texture des tuiles (EX-REN-046, LOT-41) ; les aides d'édition (grille, liens, aperçu) restent identiques dans les deux modes — ce sont des repères d'édition, pas de l'habillage. Si showTextureOverrides, les cases portant une surcharge de texture par instance (EX-EDIT-043, LOT-45) sont signalées sur le calque d'édition — actif seulement quand l'outil « Texture par instance » l'est, pour ne pas encombrer les autres outils. deltaSeconds avance l'aperçu des tuiles animées (LOT-46 TACHE-05) en temps réel — contrairement à la simulation (hmi::GameSession), l'aperçu d'édition n'a aucune exigence de déterminisme (EX-NFR-002 ne s'applique qu'en jeu) ; 0 (par défaut) fige l'animation. Les aides d'édition, comme le reste du calque RenderLayer::EditorOverlay, ne sont jamais composées en jeu ni en essai (hmi::GameSession ne passe jamais par DraftRenderer). visibility pilote le mode d'inspection « définition des textures » (LOT-51, EX-EDIT-044) — tout visible par défaut, sans effet sur les aides d'édition ci-dessus (jamais un calque de contenu).