Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - Morovaille

Pages: [1]
1
Je me suis mal exprimé. L'ajout que je propose permettrait de faire ceci :

class Foo
{
        sf::Font _myfont;
        sf::Text _mytext;
public:
        Foo() :
                _myfont("abc.ttf"),
                _mytext("text", _myfont)
        {}
};

Ce qui évite de faire de l'allocation dynamique (j'évite autant que je peux toute allocation dynamique en C++).

(J'ai aussi édité mon premier message pour être plus clair).

2
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.

Pages: [1]
anything