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

Auteur Sujet: sfml n'affiche pas de texte sur mon portable [Résolu]  (Lu 2392 fois)

0 Membres et 1 Invité sur ce sujet

blacksages

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
sfml n'affiche pas de texte sur mon portable [Résolu]
« le: Septembre 29, 2017, 08:07:36 pm »
Bonjour,

j'ai acheté un nouveau pc portable qui tourne sur windows 10, il a un processeur i5, 1 carte graphique intel graphics 630 et nvidia gtx1050. J'ai utilise le même code que j'avais sur mon fixe qui a aussi un i5 mais une carte nvidia gtx750.

Le truc c'est que sur mon fixe (w7) tout fonctionne, c'est juste une boule dans un rectangle qui rebondit, dirigée avec zqsd ET un texte en fond qui affiche la vitesse au cours du temps.
Sur mon portable (w10) la boule rebondit normal mais y'a pas de texte.

La partie du code concernée c'est
(click to show/hide)

note: bien sûr j'ai modifié le chemin (de la police) pour être cohérent sur mon portable, aussi, il n'y a aucune erreur à la compilation, j'utilise exactement le même fichier cmake de codeblock sur chacun de mes 2 pcs
« Modifié: Septembre 30, 2017, 10:50:19 am par blacksages »

Guillaume__

  • Newbie
  • *
  • Messages: 42
    • Voir le profil
Re: sfml n'affiche pas de texte sur mon portable
« Réponse #1 le: Septembre 30, 2017, 08:04:24 am »
Salut blacksages,

Je ne sais aucunement si ce que je vais relever va influencer ton affichage mais tes performances oui.

Dans ta boucle de rendu (à chaque frame donc) tu load les différentes fonts de ton programme, une erreur parce que tu gaspilles de l'espace mémoire. La meilleure des solutions est de déclarer un unique objet sf::Font (un objet font par police de caractères, ex : un pour arial, un pour calibri, etc..) en début de programme (en dehors d'une quelconque boucle) et de le passer en paramètre à tout tes objets sf::Text.

Voici un code d'illustration
//.. Les fichiers headers

int main(){
    sf::Font maFont; //Déclaration de ma font, hors de la boucle principale, d'event
    if(!maFont.loadFromFile(file))
        std::cout << "Erreur : impossible de trouver la font : " << file << std::endl;

    //À partir de maintenant tu peux utiliser ton objet sf::Font partout dans ce scope main
    sf::Text text1("Text1", maFont);
    sf::Text text2("Text2", maFont);

    //.. Du code, du code

    //Zone de rendu
    window.draw(text1);
    window.draw(text2);

    return 0;
}
 

En espérant t'avoir aiguillé au mieux :D

Cordialement G
Rejoignez-nous sur le serveur
Discord SFML

blacksages

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
Re: sfml n'affiche pas de texte sur mon portable
« Réponse #2 le: Septembre 30, 2017, 09:58:28 am »
Okey, non ça va, merci :D
le chemin de mon fichier ttf était mauvais, du coup mon pc portable ne le trouvait pas mais vu que je n'avais pas fait intervenir de "if" bah j'en savais rien.
« Modifié: Septembre 30, 2017, 10:50:28 am par blacksages »