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

Police bitmap chargée depuis Assets/Fonts/, avec repli procédural (EX-NFR-040). More...

#include <BitmapFont.h>

Public Member Functions

 BitmapFont (const RhiContext &context)
 Charge la police (fichier, avec repli procédural) et crée la texture GPU associée.
TextureHandle textureHandle () const
int textureWidth () const noexcept
int textureHeight () const noexcept
const FontMetricsmetrics () const noexcept
TextExtent measure (std::string_view text, float scale=1.0f) const
 Raccourci pour hmi::measureText(metrics(), text, scale).

Static Public Attributes

static constexpr const char * FONT_ASSET_FILE_NAME = "font.png"
 Nom du fichier d'atlas de glyphes attendu dans Assets/Fonts/.
static constexpr const char * FONT_METRICS_FILE_NAME = "font.json"
 Nom du fichier de métriques attendu dans Assets/Fonts/, à côté de l'atlas.

Private Member Functions

bool loadFromAssets (const RhiContext &context)
 Essaie de charger Assets/Fonts/font.png + font.json.
void generateProcedural (const RhiContext &context)
 Génère la police procédurale (hmi::buildProceduralFont) et crée la texture associée.

Private Attributes

FontMetrics _metrics
int _textureWidth = 0
int _textureHeight = 0
std::shared_ptr< QRhiTexture > _texture

Detailed Description

Police bitmap chargée depuis Assets/Fonts/, avec repli procédural (EX-NFR-040).

À la construction, essaie de charger Assets/Fonts/font.png accompagné de ses métriques (Assets/Fonts/font.json, hmi::loadFontMetricsFromFile), validés par le contrat d'asset (AssetFamily::Font, EX-REN-007) puis par leur cohérence mutuelle (hmi::validateFontMetricsAgainstTexture). Si l'un des deux est absent, illisible ou incohérent, retombe sans plantage sur hmi::buildProceduralFont (LOT-52), sur le modèle de hmi::TextureAtlas vis-à-vis de hmi::buildProceduralAtlasImage : possède sa propre texture GPU (RAII), chargée une fois au démarrage — pas de rechargement à chaud (comme l'atlas de tuiles, hors du périmètre de LOT-43 TACHE-03).

Constructor & Destructor Documentation

◆ BitmapFont()

hmi::BitmapFont::BitmapFont ( const RhiContext & context)
explicit

Charge la police (fichier, avec repli procédural) et crée la texture GPU associée.

Parameters
contextInterface de rendu et lot de mises à jour de l'image courante.

Member Function Documentation

◆ generateProcedural()

void hmi::BitmapFont::generateProcedural ( const RhiContext & context)
private

Génère la police procédurale (hmi::buildProceduralFont) et crée la texture associée.

◆ loadFromAssets()

bool hmi::BitmapFont::loadFromAssets ( const RhiContext & context)
private

Essaie de charger Assets/Fonts/font.png + font.json.

Returns
true si les deux ont été chargés, validés, et la texture créée avec succès.

◆ measure()

TextExtent hmi::BitmapFont::measure ( std::string_view text,
float scale = 1.0f ) const
inlinenodiscard

Raccourci pour hmi::measureText(metrics(), text, scale).

◆ metrics()

const FontMetrics & hmi::BitmapFont::metrics ( ) const
inlinenodiscardnoexcept
Returns
Les métriques de la police effectivement chargée (fichier ou repli procédural).

◆ textureHandle()

TextureHandle hmi::BitmapFont::textureHandle ( ) const
inlinenodiscard
Returns
L'identité opaque de la texture de police (non possédée par l'appelant).

◆ textureHeight()

int hmi::BitmapFont::textureHeight ( ) const
inlinenodiscardnoexcept
Returns
Hauteur de l'atlas de glyphes, en pixels.

◆ textureWidth()

int hmi::BitmapFont::textureWidth ( ) const
inlinenodiscardnoexcept
Returns
Largeur de l'atlas de glyphes, en pixels.

Member Data Documentation

◆ _metrics

FontMetrics hmi::BitmapFont::_metrics
private

◆ _texture

std::shared_ptr<QRhiTexture> hmi::BitmapFont::_texture
private

◆ _textureHeight

int hmi::BitmapFont::_textureHeight = 0
private

◆ _textureWidth

int hmi::BitmapFont::_textureWidth = 0
private

◆ FONT_ASSET_FILE_NAME

const char* hmi::BitmapFont::FONT_ASSET_FILE_NAME = "font.png"
staticconstexpr

Nom du fichier d'atlas de glyphes attendu dans Assets/Fonts/.

◆ FONT_METRICS_FILE_NAME

const char* hmi::BitmapFont::FONT_METRICS_FILE_NAME = "font.json"
staticconstexpr

Nom du fichier de métriques attendu dans Assets/Fonts/, à côté de l'atlas.


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