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

Auteur Sujet: Besoins de détails sur le fonctionnement de la classe Font.  (Lu 1598 fois)

0 Membres et 1 Invité sur ce sujet

Spidyy

  • Sr. Member
  • ****
  • Messages: 493
    • Voir le profil
Besoins de détails sur le fonctionnement de la classe Font.
« le: Février 24, 2013, 08:03:12 am »
Hello ici.

Je suis en train de m'inspirer de la classe Font de SFML pour me faire une classe Font perso utilisant Freetype pour mon jeu Android, mais pour optimiser au max l'utilisation de la mémoire, j'ai besoin de faire quelques modifications, et en lisant la doc Freetype et le code source SFML, il me vient quelques questions auxquelles je ne sais pas répondre seul.

- Les Font faces : Qu'est-ce? J'ai du mal à imaginer ce que les notions de font et de face peuvent avoir en commun, donc de quoi sagit-il? Quel genre de donnée je trouve avec les font face?

- struct Page : Si je comprend, les pages contiennent les info de chaque glyph et leur texture pour 1 characterSize donné, juste?

- struct Row : Pourquoi avoir besoin de garder en mémoire les différentes rangés de glyph?

- Pour le layout des glyphs sur une texture, est-ce géré par la classe Font ou par Freetype?

- Les codepoint, ce sont bien les codes correspondant à chaque caractère géré par la Font? (venant de la GlyphTable)
« Modifié: Février 24, 2013, 08:06:01 am par Spidyy »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Besoins de détails sur le fonctionnement de la classe Font.
« Réponse #1 le: Février 24, 2013, 10:19:28 am »
Salut

Citer
- Les Font faces : Qu'est-ce? J'ai du mal à imaginer ce que les notions de font et de face peuvent avoir en commun, donc de quoi sagit-il? Quel genre de donnée je trouve avec les font face?
Là je ne sais pas, il faut regarder dans la doc de FreeType ou bien de manière plus générale sur wikipedia. C'est l'objet de plus haut niveau dans FreeType (celui que l'on obtient après chargement d'une police), donc soit ça représente toute la police, soit une variante de celle-ci (un fichier de police peut contenir plusieurs variantes de la même police je crois).
En tout cas, savoir ce que ça définit exactement n'est pas primordial pour ce que tu veux faire.

Citer
- struct Page : Si je comprend, les pages contiennent les info de chaque glyph et leur texture pour 1 characterSize donné, juste?
Oui. Il y a une page par taille de caractère (ce qui n'est pas terrible d'ailleurs, mais tellement plus pratique), et celle-ci contient la texture des glyphes plus les infos qui permettent de la mettre à jour avec de nouveaux glyphes.

Citer
- struct Row : Pourquoi avoir besoin de garder en mémoire les différentes rangés de glyph?
Pour savoir où placer un nouveau glyphe dans la texture, de manière à ce qu'il occupe le moins de place inutile possible.

Citer
- Pour le layout des glyphs sur une texture, est-ce géré par la classe Font ou par Freetype?
C'est sf::Font qui gère, avec un algo complètement perso. FreeType ne gère même pas de texture, il sait juste créer le bitmap correspondant à un glyphe quant tu le lui demandes.

Citer
- Les codepoint, ce sont bien les codes correspondant à chaque caractère géré par la Font? (venant de la GlyphTable)
Oui. Le mot "code point" vient du standard Unicode, c'est plus ou moins équivalent à "caractère", mais en plus subtil.
Laurent Gomila - SFML developer