En voulant créer une sf::Text, je vois que j'ai à ma disposition :
Text (const String &string, const Font &font, unsigned int characterSize=30)
Mais quand je clique sur sf::Font, il n'y a que les constructeur par défaut et le constructeur par copie.
Du coup, j'ai l'impression que le constructeur de sf::Text n'est pas très utile. Si dans une classe j'ai un sf::Text, je ne peux pas l'initialiser avec ce contructeur, puisqu'il faut d'abord appeler la méthode loadFromFile de la sf::Font. Je ne sais pas si je suis très clair.
Pourquoi ne pas surcharger le constructeur de sf::Font de façon à charger la police comme avec les trois méthodes loadFromFile, loadFromMemory et loadFromStream ? Avec une méthode pour vérifier ensuite que tout s'est bien passé. Ou une exception lancée par le constructeur, pourquoi pas.
Enfin bref, si quelqu'un a une info là-dessus, merci.
Edit :
Pour le moment, je fais un truc comme ça :
namespace
{
inline sf::Font *
get_font(std::string const & file)
{
auto font(new sf::Font());
font->loadFromFile(file);
return font;
}
}
class Foo
{
std::unique_ptr<sf::Font> _font;
sf::Text _text;
public:
Foo() :
_font(get_font("my_font.ttf")),
_text("text", *_font)
{}
};
Ce qui est un peu lourd... Et je pense que ce(s) nouveau(x) constructeur(s) serviraient à tout le monde.