JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
hmi::LayerVisibility Class Reference

Jeu de visibilités par calque, pour le mode d'inspection « définition des textures » (LOT-51). More...

#include <LayerVisibility.h>

Public Member Functions

bool visible (RenderLayer layer) const noexcept
void setVisible (RenderLayer layer, bool isVisible) noexcept
 Affiche ou masque layer.
void showAll () noexcept
 Rétablit la visibilité de tous les calques (action « tout afficher », TACHE-03).

Private Attributes

std::array< bool, RENDER_LAYER_COUNT_visible

Detailed Description

Jeu de visibilités par calque, pour le mode d'inspection « définition des textures » (LOT-51).

Indexé par la valeur de hmi::RenderLayer, plutôt que par une liste de champs nommés écrite à la main : un calque futur (EditorOverlay mis à part, jamais exposé) n'oblige donc pas à réécrire cette classe, seul RENDER_LAYER_COUNT grandit. Tous les calques sont visibles par défaut, et rien n'est persisté entre deux sessions (TACHE-01) — contrairement à hmi::RenderMode (F8), qui survit au redémarrage.

RenderLayer::Object prend ici, pour la première fois, une signification concrète : aucune entité ne porte ce calque à ce jour (les objets interactifs restent des tuiles ordinaires sur RenderLayer::Tile, LOT-45). Ce bit sert donc d'axe de résolution — « la surcharge par instance d'une tuile doit-elle s'afficher ? » — par opposition au bit RenderLayer::Tile, qui demande « le skin de son type doit-il s'afficher ? ». Les deux entités physiques restent sur RenderLayer::Tile pour l'ordre de dessin (EX-REN-014, jamais changé par ce lot) ; seule la résolution de leur apparence consulte ces deux bits séparément (hmi::resolveTileAppearance, TACHE-02). Quand les deux valent true (le défaut), le résultat est inchangé depuis LOT-45 : surcharge > skin > damier, sans distinction.

Pour tout autre calque (Background, Plane, Shadow, Player, Foreground), le bit masque grossièrement : une entité de ce calque n'émet aucune primitive si son bit est à false. UI/EditorOverlay ne sont pas des calques de contenu (aides d'édition, jamais affectées) : la classe leur réserve tout de même une entrée, mais rien ne l'interroge.

Member Function Documentation

◆ setVisible()

void hmi::LayerVisibility::setVisible ( RenderLayer layer,
bool isVisible )
inlinenoexcept

Affiche ou masque layer.

◆ showAll()

void hmi::LayerVisibility::showAll ( )
inlinenoexcept

Rétablit la visibilité de tous les calques (action « tout afficher », TACHE-03).

◆ visible()

bool hmi::LayerVisibility::visible ( RenderLayer layer) const
inlinenodiscardnoexcept
Returns
true si layer doit être composé (tout calque est visible par défaut).

Member Data Documentation

◆ _visible

std::array<bool, RENDER_LAYER_COUNT> hmi::LayerVisibility::_visible
private
Initial value:
= [] {
std::array<bool, RENDER_LAYER_COUNT> all{};
all.fill(true);
return all;
}()

The documentation for this class was generated from the following file:
  • /home/runner/work/JustAnotherDnDGame/JustAnotherDnDGame/Source/HMI/Graphics/LayerVisibility.h