JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
ProceduralFont.h File Reference

Métriques de police bitmap, mesure pure de texte, lecture JSON et repli procédural (LOT-52) — logique pure, sans GPU ni Qt (EX-NFR-010). More...

#include <cstddef>
#include <cstdint>
#include <filesystem>
#include <optional>
#include <string>
#include <string_view>
#include <unordered_map>
#include <vector>
#include "HMI/Graphics/AssetContract.h"

Go to the source code of this file.

Classes

struct  hmi::GlyphMetrics
 Position, taille et avance horizontale d'un glyphe dans l'atlas de police, en pixels. More...
struct  hmi::FontMetrics
 Métriques d'une police bitmap : région et avance de chaque point de code couvert. More...
struct  hmi::TextExtent
 Dimensions mesurées d'un texte, en pixels (à l'échelle demandée). More...
struct  hmi::ProceduralFontImage
 Pixels d'un atlas de police généré en mémoire, au format R8G8B8A8_UNORM (ordre mémoire R,G,B,A), ligne par ligne (haut en bas). More...
struct  hmi::ProceduralFont
 Atlas de police procédural complet : ses pixels et les métriques qui les décrivent. More...
struct  hmi::FontMetricsResult
 Résultat d'une lecture de métriques : soit des FontMetrics, soit une erreur décrite. More...

Namespaces

namespace  hmi

Enumerations

enum class  hmi::FontMetricsError {
  hmi::None , hmi::FileNotFound , hmi::ParseError , hmi::UnsupportedVersion ,
  hmi::MalformedStructure
}
 Catégorie d'échec de lecture d'un fichier de métriques (même esprit que hmi::AnimationCatalogError). More...

Functions

char32_t hmi::nextUtf8CodePoint (std::string_view text, std::size_t &index) noexcept
 Décode le point de code UTF-8 suivant d'une chaîne.
TextExtent hmi::measureText (const FontMetrics &metrics, std::string_view text, float scale=1.0f) noexcept
 Largeur et hauteur qu'occuperait text avec metrics, à l'échelle scale.
ProceduralFont hmi::buildProceduralFont ()
 Génère, en mémoire, une police bitmap minimale et déterministe (repli sans asset).
FontMetricsResult hmi::loadFontMetricsFromString (std::string_view json)
 Lit des métriques de police depuis une chaîne JSON.
FontMetricsResult hmi::loadFontMetricsFromFile (const std::filesystem::path &path)
 Lit des métriques de police depuis un fichier.
AssetValidation hmi::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é.

Variables

constexpr int hmi::FONT_METRICS_FORMAT_VERSION = 1
 Version du format de métriques écrite dans le fichier, et plus élevée qui soit lue (hmi::loadFontMetricsFromString).

Detailed Description

Métriques de police bitmap, mesure pure de texte, lecture JSON et repli procédural (LOT-52) — logique pure, sans GPU ni Qt (EX-NFR-010).