Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [Résolu] Largeur des caractères spéciaux (é, ã, ...)  (Lu 3194 fois)

0 Membres et 1 Invité sur ce sujet

Assouan

  • Newbie
  • *
  • Messages: 22
  • texe perso
    • Voir le profil
    • E-mail
[Résolu] Largeur des caractères spéciaux (é, ã, ...)
« le: Mai 14, 2012, 09:39:14 pm »
Bonjour, voilà, je n'arrive pas à récupérer la largeur des caractères spéciaux (j'entends par là, les lettres accentué) du genre " ã, ä, ë, ... "

    cout << sf::Font::getDefaultFont().getGlyph('a', 30, false).advance << endl; // Résultat: 16
    cout << sf::Font::getDefaultFont().getGlyph('ã', 30, false).advance << endl; // Résultat: 23
    cout << sf::Font::getDefaultFont().getGlyph('ä', 30, false).advance << endl; // Résultat: 23
    cout << sf::Font::getDefaultFont().getGlyph('e', 30, false).advance << endl; // Résultat: 16
    cout << sf::Font::getDefaultFont().getGlyph('é', 30, false).advance << endl; // Résultat: 23
    cout << sf::Font::getDefaultFont().getGlyph('ê', 30, false).advance << endl; // Résultat: 23
    cout << sf::Font::getDefaultFont().getGlyph('ë', 30, false).advance << endl; // Résultat: 23

Je dois surement mal m'y prendre... mais en faisant ainsi, je me prend un jolie décalage du curseur pour mon text edit quand je tape des accents...
« Modifié: Mai 15, 2012, 08:49:28 am par Assouan »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Largeur des caractères spéciaux (é, ã, ...)
« Réponse #1 le: Mai 14, 2012, 11:02:32 pm »
Et avec un L devant les caractères ? (L'a', L'é', ...)
Laurent Gomila - SFML developer

Assouan

  • Newbie
  • *
  • Messages: 22
  • texe perso
    • Voir le profil
    • E-mail
Re : Largeur des caractères spéciaux (é, ã, ...)
« Réponse #2 le: Mai 15, 2012, 08:48:31 am »
Effectivement Laurent, sa va beaucoup mieux ainsi ;D

ps: Ne serait t'il pas mieux que getGlyph récupère un Int32 au lieu d'un Uint32 ? (pour une plus grande compatibilité) ? Ou alors une seconde fonction qui s'occupe de récupérer un Int8 et le converti en Uint8, et puis finalement en Uint32 pour appeler la fonction principal

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : [Résolu] Largeur des caractères spéciaux (é, ã, ...)
« Réponse #3 le: Mai 15, 2012, 08:50:30 am »
Citer
Ne serait t'il pas mieux que getGlyph récupère un Int32 au lieu d'un Uint32 ? (pour une plus grande compatibilité) ? Ou alors une seconde fonction qui s'occupe de récupérer un Int8 et le converti en Uint8, et puis finalement en Uint32 pour appeler la fonction principal
Et ça servirait à quoi ? Le résultat ne serait pas forcément meilleur, car il dépendra toujours de l'encodage de ton fichier source.

getGlyph attend un codepoint Unicode, ou si tu préfères un caractère UTF-32. Si ce n'est pas le cas alors il faut se débrouiller pour convertir, moi je ne peux pas deviner quel encodage est utilisé.
« Modifié: Mai 15, 2012, 08:52:27 am par Laurent »
Laurent Gomila - SFML developer