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

Textures liables par la composition d'une scène, et de quoi choisir laquelle lier. More...

#include <TileAppearance.h>

Public Member Functions

int skinIndexOf (std::string_view asset, core::TileType type) const noexcept
 Index du skin chargé pour un asset et un type de tuile donnés.
int objectIndexOf (std::string_view asset) const noexcept
 Index de la texture d'objet chargée pour un asset donné (EX-EDIT-043, LOT-45).
TextureHandle textureFor (const TileAppearance &appearance) const noexcept
int widthFor (const TileAppearance &appearance) const noexcept
int heightFor (const TileAppearance &appearance) const noexcept

Public Attributes

TextureHandle atlas = nullptr
 Atlas du jeu (hmi::TextureAtlas::textureHandle).
int atlasWidth = 0
 Largeur de l'atlas, en pixels.
int atlasHeight = 0
 Hauteur de l'atlas, en pixels.
TextureHandle missing = nullptr
 Damier magenta de repli (hmi::TextureCache::missingTexture).
int missingWidth = 0
 Largeur du damier, en pixels.
int missingHeight = 0
 Hauteur du damier, en pixels.
TextureHandle characterSheet = nullptr
 Spritesheet externe du personnage (hmi::PLAYER_SUBDIRECTORY/PLAYER_SHEET_FILE_NAME, LOT-48), ou nullptr si absente/invalide — repli sur l'atlas (hmi::PlayerSpriteTag:: usesCharacterSheet), comme hmi::TextureAtlas retombe déjà sur le procédural.
int characterSheetWidth = 0
 Largeur de la spritesheet du personnage, en pixels.
int characterSheetHeight = 0
 Hauteur de la spritesheet du personnage, en pixels.
std::vector< SkinTextureskins
 Skins déjà chargés, adressés par index (hmi::TileAppearance::skinIndex).
const SkinCatalogskinCatalog = nullptr
 Catalogue des jeux de skins, ou nullptr si aucun n'est chargé (tout retombe au damier).
std::string skinSet
 Nom du jeu de skins courant. Vide pour utiliser le jeu par défaut du catalogue.
std::vector< SkinTextureobjects
 Textures assignées par instance (EX-EDIT-043, LOT-45), adressées par index.

Private Member Functions

const SkinTextureskinAt (int index) const noexcept
const SkinTextureobjectAt (int index) const noexcept

Detailed Description

Textures liables par la composition d'une scène, et de quoi choisir laquelle lier.

Regroupées en une seule donnée parce qu'elles vont toujours ensemble : une texture sans ses dimensions ne permet pas de normaliser des coordonnées de texture, et la composition doit pouvoir servir toutes les branches de hmi::resolveTileAppearance sans rien demander au GPU.

Porte aussi le catalogue et le jeu courant (LOT-42) : ce sont eux qui décident quelle texture lier, au même titre que les textures elles-mêmes. Les y placer garde la composition paramétrée par une seule donnée, et laisse la fonction de résolution pure et testable sans GPU (EX-NFR-004).

Member Function Documentation

◆ heightFor()

int hmi::SceneTextures::heightFor ( const TileAppearance & appearance) const
inlinenodiscardnoexcept
Returns
La hauteur, en pixels, de la texture correspondant à une apparence résolue.

◆ objectAt()

const SkinTexture * hmi::SceneTextures::objectAt ( int index) const
inlinenodiscardprivatenoexcept

◆ objectIndexOf()

int hmi::SceneTextures::objectIndexOf ( std::string_view asset) const
inlinenodiscardnoexcept

Index de la texture d'objet chargée pour un asset donné (EX-EDIT-043, LOT-45).

Pas de silhouette à considérer (contrairement à skinIndexOf) : une surcharge n'est jamais détourée, elle s'affiche telle quelle.

Parameters
assetNom du fichier cherché.
Returns
Son index dans objects, ou -1 si non chargé.

◆ skinAt()

const SkinTexture * hmi::SceneTextures::skinAt ( int index) const
inlinenodiscardprivatenoexcept

◆ skinIndexOf()

int hmi::SceneTextures::skinIndexOf ( std::string_view asset,
core::TileType type ) const
inlinenodiscardnoexcept

Index du skin chargé pour un asset et un type de tuile donnés.

Compare sans jamais construire de chaîne : cette recherche a lieu pour chaque primitive de chaque image, et une clé textuelle assemblée à la volée y allouerait à ce rythme.

Parameters
assetNom du fichier cherché.
typeType de tuile, qui détermine si c'est la variante détourée qu'il faut.
Returns
Son index dans skins, ou -1 si la variante voulue n'est pas chargée.

◆ textureFor()

TextureHandle hmi::SceneTextures::textureFor ( const TileAppearance & appearance) const
inlinenodiscardnoexcept
Returns
La texture correspondant à une apparence résolue (nullptr si non fournie).

◆ widthFor()

int hmi::SceneTextures::widthFor ( const TileAppearance & appearance) const
inlinenodiscardnoexcept
Returns
La largeur, en pixels, de la texture correspondant à une apparence résolue.

Member Data Documentation

◆ atlas

TextureHandle hmi::SceneTextures::atlas = nullptr

◆ atlasHeight

int hmi::SceneTextures::atlasHeight = 0

Hauteur de l'atlas, en pixels.

◆ atlasWidth

int hmi::SceneTextures::atlasWidth = 0

Largeur de l'atlas, en pixels.

◆ characterSheet

TextureHandle hmi::SceneTextures::characterSheet = nullptr

Spritesheet externe du personnage (hmi::PLAYER_SUBDIRECTORY/PLAYER_SHEET_FILE_NAME, LOT-48), ou nullptr si absente/invalide — repli sur l'atlas (hmi::PlayerSpriteTag:: usesCharacterSheet), comme hmi::TextureAtlas retombe déjà sur le procédural.

◆ characterSheetHeight

int hmi::SceneTextures::characterSheetHeight = 0

Hauteur de la spritesheet du personnage, en pixels.

◆ characterSheetWidth

int hmi::SceneTextures::characterSheetWidth = 0

Largeur de la spritesheet du personnage, en pixels.

◆ missing

TextureHandle hmi::SceneTextures::missing = nullptr

Damier magenta de repli (hmi::TextureCache::missingTexture).

◆ missingHeight

int hmi::SceneTextures::missingHeight = 0

Hauteur du damier, en pixels.

◆ missingWidth

int hmi::SceneTextures::missingWidth = 0

Largeur du damier, en pixels.

◆ objects

std::vector<SkinTexture> hmi::SceneTextures::objects

Textures assignées par instance (EX-EDIT-043, LOT-45), adressées par index.

asset est le seul champ significatif (maskType toujours vide : une surcharge n'est jamais détourée à une silhouette, contrairement à un skin de type).

◆ skinCatalog

const SkinCatalog* hmi::SceneTextures::skinCatalog = nullptr

Catalogue des jeux de skins, ou nullptr si aucun n'est chargé (tout retombe au damier).

◆ skins

std::vector<SkinTexture> hmi::SceneTextures::skins

Skins déjà chargés, adressés par index (hmi::TileAppearance::skinIndex).

◆ skinSet

std::string hmi::SceneTextures::skinSet

Nom du jeu de skins courant. Vide pour utiliser le jeu par défaut du catalogue.


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