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

Auteur Sujet: Gestionnaire de ressources  (Lu 2742 fois)

0 Membres et 1 Invité sur ce sujet

CINEfilHD77

  • Newbie
  • *
  • Messages: 38
    • Voir le profil
Gestionnaire de ressources
« le: Juillet 04, 2014, 11:47:57 pm »
Bonsoir à tous !
Voilà, j'ai besoin de concevoir un gestionnaire de ressources pour un projet de jeu, notamment, ici, un gestionnaire d'images.
Mais en fait j'hésite sur plusieurs points, et j'aimerai donc avoir certains conseils.
Je me demande, donc, quel choix est le plus judicieux :
-Gérer le stockage de sf::Image
-Gérer le stockage de sf::Texture
-Gérer le stockage des deux

Est-ce utile de gérer le stockage des deux, sachant que la majorité des images stockées auront pour rôle de texturer mes polygones, mais que j'aurai parfois besoin d'utiliser les propriétés d'un objet sf::Image ?

Voilà pour ma première question, y'en a surement d'autres qui découleront de vos réponses :)

marcf3

  • Newbie
  • *
  • Messages: 45
    • Voir le profil
    • http://zylannprods.fr
    • E-mail
Re : Gestionnaire de ressources
« Réponse #1 le: Juillet 05, 2014, 03:49:09 am »
A mon humble avis, ne stocker que des sf::Texture devrait suffire dans un premier temps, à moins que tu aies souvent besoin d'accéder aux pixels ou les modifier.
Si c'est le cas, tu peux toujours faire texture.copyToImage() et accéder à l'image, mais si tu as besoin de faire ça très souvent (à chaque update, ou dans une grosse opération), tu devras sans doute les stocker quelque part à côté.

Tu peux aussi faire en sorte que ton ResourceManager soit capable de stocker différents types de ressources (images, sons, shaders, data...), où sf::Image et sf::Texture sont deux types possibles.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Gestionnaire de ressources
« Réponse #2 le: Juillet 05, 2014, 08:37:12 am »
Si tu veux qu'on t'aide, il faut que tu nous dises ce que ton gestionnaire doit faire. En particulier, pourquoi il aurait besoin de garder des sf::Image.
Laurent Gomila - SFML developer

CINEfilHD77

  • Newbie
  • *
  • Messages: 38
    • Voir le profil
Re : Gestionnaire de ressources
« Réponse #3 le: Juillet 05, 2014, 11:11:49 am »
Ah d'accord, du coup je voulais stocker des sf::Image pour des splash-screens, etc... (Ce qui me paraissait logique mais en fait ça sert à rien, autant stocker que des sf::Textures). Donc en fait, quand j'aurai besoin de sf::Image je convertirai les sf::Texture (J'aurai peut-être besoin de ça, mais rarement, donc aucun ralentissement de prévu).
Problème réglé, merci !

Par contre, pour le stockage de données sonores, j'ai cherché partout, j'ai trouvé des infos qui se contredisent donc je vous demande directement. Pour sf::Sound, c'est bon, ça aucun problème, par contre, quelle technique est le plus judicieux pour stocker des sf::Music ? Stocker des sf::Music*, ou seulement stocker les chemins des fichiers correspondant à chaque musique ?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Gestionnaire de ressources
« Réponse #4 le: Juillet 05, 2014, 12:15:13 pm »
Citer
quelle technique est le plus judicieux pour stocker des sf::Music ?
Ben... stocker des sf::Music.

Si ce que tu sous-entends c'est de mettre des sf::Music dans un gestionnaire de musiques, alors ça ne sert à rien. sf::Music n'est pas une ressource partageable, tu dois en instancier une nouvelle à chaque fois que tu veux en jouer une.
Laurent Gomila - SFML developer

CINEfilHD77

  • Newbie
  • *
  • Messages: 38
    • Voir le profil
Re : Gestionnaire de ressources
« Réponse #5 le: Juillet 05, 2014, 12:21:33 pm »
Oui, je voulais dire utiliser un gestionnaire de musiques :P
D'accord, donc du coup je vais stocker des chemins de fichiers !
Merci pour les réponses !!! :D

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Gestionnaire de ressources
« Réponse #6 le: Juillet 05, 2014, 01:49:15 pm »
Citer
D'accord, donc du coup je vais stocker des chemins de fichiers !
Dans quel but ?
Laurent Gomila - SFML developer

CINEfilHD77

  • Newbie
  • *
  • Messages: 38
    • Voir le profil
Re : Gestionnaire de ressources
« Réponse #7 le: Juillet 05, 2014, 06:11:55 pm »
La plupart des musiques utilisées seront communes à plusieurs choses (Entités, Niveaux, etc...), du coup je stocke toutes les musiques nécessaires dans un gestionnaire audio, sous forme de chemins de fichiers associés (std::map) à un ID (std::string), et quand j'en aurai besoin pendant le déroulement du programme je lance une requête au gestionnaire avec l'ID de la musique, et ça me renvoie le chemin de celle-ci, que j'ouvre ensuite avec, par exemple, l'instance de sf::Music contenu dans la classe d'un Niveau.

Tiens, et pendant que j'y pense, est-ce qu'il y a une méthode pour écraser une sf::Texture ? Genre à un moment du programme je load une texture de 100x50, et ensuite, pour x raison, je refais un loadFromFile sur la même instance, pour remplacer par une autre image. Parce que j'ai essayé plusieurs choses mais à chaque fois ça me garde les dimensions de la première image utilisée...
EDIT : Je suis un crétin, c'est bon pour ça  ;D

Merci en tout cas ! :)
« Modifié: Juillet 05, 2014, 06:46:49 pm par CINEfilHD77 »