12#include <unordered_map>
49 std::unordered_map<char32_t, GlyphMetrics>
glyphs;
77[[nodiscard]]
char32_t nextUtf8CodePoint(std::string_view text, std::size_t& index)
noexcept;
91 float scale = 1.0f) noexcept;
146 [[nodiscard]]
bool ok() const noexcept {
182 const std::string& fileName,
Contrat de dimensions par famille d'assets graphiques et validation pure (EX-REN-007).
Definition AudioEngine.cpp:15
TextExtent measureText(const FontMetrics &metrics, std::string_view text, float scale) noexcept
Largeur et hauteur qu'occuperait text avec metrics, à l'échelle scale.
Definition ProceduralFont.cpp:262
@ UnsupportedVersion
Numéro de version supérieur à SoundCatalog::FORMAT_VERSION.
Definition SoundCatalog.h:30
@ FileNotFound
Fichier absent. Cas légitime (catalogue vide), pas une anomalie.
Definition SoundCatalog.h:28
@ None
Pas d'erreur.
Definition SoundCatalog.h:27
@ MalformedStructure
Structure inattendue (« sons » absent, entrée invalide…).
Definition SoundCatalog.h:31
@ ParseError
JSON malformé, ou racine qui n'est pas un objet.
Definition SoundCatalog.h:29
FontMetricsError
Catégorie d'échec de lecture d'un fichier de métriques (même esprit que hmi::AnimationCatalogError).
Definition ProceduralFont.h:128
@ None
Pas d'erreur.
Definition ProceduralFont.h:129
constexpr int FONT_METRICS_FORMAT_VERSION
Version du format de métriques écrite dans le fichier, et plus élevée qui soit lue (hmi::loadFontMetr...
Definition ProceduralFont.h:122
FontMetricsResult loadFontMetricsFromFile(const std::filesystem::path &path)
Lit des métriques de police depuis un fichier.
Definition ProceduralFont.cpp:540
char32_t nextUtf8CodePoint(std::string_view text, std::size_t &index) noexcept
Décode le point de code UTF-8 suivant d'une chaîne.
Definition ProceduralFont.cpp:221
ProceduralFont buildProceduralFont()
Génère, en mémoire, une police bitmap minimale et déterministe (repli sans asset).
Definition ProceduralFont.cpp:293
AssetValidation validateFontMetricsAgainstTexture(const FontMetrics &metrics, const std::string &fileName, int textureWidth, int textureHeight)
Valide la cohérence entre des métriques et les dimensions décodées du PNG associé.
Definition ProceduralFont.cpp:552
FontMetricsResult loadFontMetricsFromString(std::string_view json)
Lit des métriques de police depuis une chaîne JSON.
Definition ProceduralFont.cpp:436
Résultat d'une lecture de métriques : soit des FontMetrics, soit une erreur décrite.
Definition ProceduralFont.h:140
std::string error
Definition ProceduralFont.h:142
bool ok() const noexcept
Definition ProceduralFont.h:146
std::optional< FontMetrics > metrics
Definition ProceduralFont.h:141
FontMetricsError errorCode
Definition ProceduralFont.h:143
Métriques d'une police bitmap : région et avance de chaque point de code couvert.
Definition ProceduralFont.h:43
int lineHeight
Hauteur d'une ligne, en pixels (avance verticale d'un retour à la ligne \n).
Definition ProceduralFont.h:45
char32_t replacementCodePoint
Point de code substitué à un caractère non couvert par glyphs (typiquement ?).
Definition ProceduralFont.h:47
const GlyphMetrics * glyph(char32_t codePoint) const
Métriques effectives d'un point de code, avec substitution.
Definition ProceduralFont.cpp:208
std::unordered_map< char32_t, GlyphMetrics > glyphs
Point de code → métriques de son glyphe dans l'atlas.
Definition ProceduralFont.h:49
Position, taille et avance horizontale d'un glyphe dans l'atlas de police, en pixels.
Definition ProceduralFont.h:26
int advance
Distance horizontale jusqu'au glyphe suivant (peut différer de width).
Definition ProceduralFont.h:32
int height
Definition ProceduralFont.h:30
int y
Definition ProceduralFont.h:28
int width
Definition ProceduralFont.h:29
int x
Definition ProceduralFont.h:27
Pixels d'un atlas de police généré en mémoire, au format R8G8B8A8_UNORM (ordre mémoire R,...
Definition ProceduralFont.h:95
int height
Definition ProceduralFont.h:97
std::vector< std::uint32_t > pixels
Definition ProceduralFont.h:98
int width
Definition ProceduralFont.h:96
Atlas de police procédural complet : ses pixels et les métriques qui les décrivent.
Definition ProceduralFont.h:102
ProceduralFontImage image
Definition ProceduralFont.h:103
FontMetrics metrics
Definition ProceduralFont.h:104
Dimensions mesurées d'un texte, en pixels (à l'échelle demandée).
Definition ProceduralFont.h:61
float height
Definition ProceduralFont.h:63
float width
Definition ProceduralFont.h:62