fix(text): fallback de minúscules a majúscules i glif de barra baixa (_)

This commit is contained in:
2026-05-30 11:19:41 +02:00
parent 785700f819
commit e420db2896
2 changed files with 24 additions and 1 deletions
+15 -1
View File
@@ -48,7 +48,7 @@ namespace Graphics {
}
// Cargar símbolos
const std::string SYMBOLS[] = {".", ",", "-", ":", "!", "?", "/", "(", ")"};
const std::string SYMBOLS[] = {".", ",", "-", ":", "!", "?", "/", "(", ")", "_"};
for (const auto& sym : SYMBOLS) {
char c = sym[0];
std::string filename = getShapeFilename(c);
@@ -171,6 +171,8 @@ namespace Graphics {
return "font/char_lparen.shp";
case ')':
return "font/char_rparen.shp";
case '_':
return "font/char_underscore.shp";
case ' ':
return ""; // Espai es maneja sin load shape
@@ -183,6 +185,10 @@ namespace Graphics {
}
auto VectorText::isSupported(char c) const -> bool {
// Mateix fallback que render(): a-z es resol al glif A-Z.
if (c >= 'a' && c <= 'z') {
c -= 32;
}
return chars_.contains(c);
}
@@ -221,6 +227,14 @@ namespace Graphics {
continue;
}
// Fallback de la font (només tenim glifs en majúscula): tractem
// les minúscules a-z com les seves majúscules A-Z. Mentre no hi
// haja glifs de minúscula, això evita que el text en minúscules
// (p. ex. rutes de fitxer) desaparega.
if (c >= 'a' && c <= 'z') {
c -= 32;
}
// Verificar si el carácter está soportado
auto it = chars_.find(c);
if (it != chars_.end()) {