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

Auteur Sujet: Textures et Sprites  (Lu 2025 fois)

0 Membres et 2 Invités sur ce sujet

Biblock

  • Newbie
  • *
  • Messages: 5
    • Voir le profil
Textures et Sprites
« le: Février 02, 2014, 05:07:01 pm »
Bonjour, débutant avec SFML, pour m'exercer je suis en train de développer un démineur en ligne, mais je le trouve assez lent. Du coup, pour l'optimiser j'essaie de comprendre un peu mieux.

Qu'est-ce qui est le plus lourd ?  loadFromFile de sf::Texture ? Ou setTexture de sf::Sprite ?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Textures et Sprites
« Réponse #1 le: Février 02, 2014, 07:40:58 pm »
Texture::loadFromFile lit un gros fichier sur le disque dur, l'interprète, et envoie plein de données sur la carte graphique.

Sprite::setTexture fait une affectation de pointeur.
Laurent Gomila - SFML developer

Biblock

  • Newbie
  • *
  • Messages: 5
    • Voir le profil
Re : Textures et Sprites
« Réponse #2 le: Février 02, 2014, 08:58:56 pm »
Ok merci. Et du coup, si je fais quelque chose du genre :

Texture texture1;
texture1.loadFromFile ("bliblablou");
Texture texture2 = texture1; //J'ai vu dans la doc que l’opérateur a bien été surchargé
 

Que se passe t'il au niveau des performances ?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Textures et Sprites
« Réponse #3 le: Février 03, 2014, 07:40:45 am »
C'est très lent aussi.

Mais si tu poses ces questions c'est que tu fais quelque chose de travers. Toutes ces opérations ne devraient se passer qu'une fois lors de l'initialisation, et donc ne pas affecter tes performances.
Laurent Gomila - SFML developer

Biblock

  • Newbie
  • *
  • Messages: 5
    • Voir le profil
Re : Textures et Sprites
« Réponse #4 le: Février 04, 2014, 05:32:56 pm »
Oui, je pense aussi. En fait j'ai un objet de type CGrille qui contient un vector de CCellules. CGrille est dessinable et dans draw(), on parcourt le vector et selon l'indice sur x et y, et aux accesseurs de la CCellule (qui indiquent si c'est une case minée, s'il y a un drapeau, etc..) on "set" la bonne position et la bonne texture. J'ai pensé plus pratique de déterminer ce qu'il fallait dessiner dans CGrille que de mettre en donnée membre de CCellule son sprite, parce que j'aurais ainsi accès plus facilement accès aux données de la grille elle même au cas ou j'en ai un jour besoin, mais apparemment c'est au détriment des performances.

Comme je l'ai dit, je suis débutant, donc ça fait vraiment plaisir d'être aidé :) encore merci.