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

Auteur Sujet: [GUI] garder les fenêtres en mémoire ou pas ?  (Lu 2210 fois)

0 Membres et 1 Invité sur ce sujet

Samuel Proulx

  • Full Member
  • ***
  • Messages: 118
    • Voir le profil
[GUI] garder les fenêtres en mémoire ou pas ?
« le: Août 25, 2012, 05:51:46 pm »
Bonjour à tous et à toutes :)

Je suis en train de créer une interface graphique pour une utilisation personnelle et je me demande s'il est mieux de supprimer la fenêtre de la mémoire (supprimer l'objet, donc une classe dérivant d'une classe Widget) et de la recréer lorsque l'utilisateur le demande (afficher ses statistiques par exemple) ou de simplement mettre un booléen toDraw; pour savoir si je dois la dessiner ou pas ?

L'avantage de la première solution est une consommation de mémoire réduite (dessiné à l'aide des ConvexShape). Par contre, je devrai garder en mémoire toutes les variables des statistiques par exemple.

L'autre solution a l'avantage de ne pas devoir stocker deux fois la même variable, mais devra garder en mémoire toutes les fenêtres du jeu...

Qu'en pensez-vous ? :)

kamui

  • Sr. Member
  • ****
  • Messages: 291
    • Voir le profil
Re : [GUI] garder les fenêtres en mémoire ou pas ?
« Réponse #1 le: Août 25, 2012, 06:21:19 pm »
Le problème c'est qu'avec SFML, les fenetres sont dessinées dès leur création et restent à l'écran tant qu'elles ne sont pas détruites. Je penses que ça va t'aider à choisir ta voie ;)

Samuel Proulx

  • Full Member
  • ***
  • Messages: 118
    • Voir le profil
Re : [GUI] garder les fenêtres en mémoire ou pas ?
« Réponse #2 le: Août 25, 2012, 07:22:52 pm »
Euh... tu parles de quelle fenêtre là ? Moi je parlais des fenêtres que je crée grâce à des convexShape et non des fenêtres créée par windows.

Sinon, je ne comprends vraiment pas ta réponse :-\

gaulois94

  • Sr. Member
  • ****
  • Messages: 259
    • Voir le profil
Re : [GUI] garder les fenêtres en mémoire ou pas ?
« Réponse #3 le: Août 25, 2012, 10:22:38 pm »
Tu les créés avec convexShape ? Moi c'est avec RenderTexture (pour aussi une GUI personnels).

Pour répondre à ta question, tu dois toi aussi répondre à une question : es-ce que leur restauration prendra du temps (niveau CPU) ou le fait qu'elles existent prennent de grosses ressources ? Sinon, je donne quand même accès à l'utilisateur à une variable drawWidget qui permet de "cacher" le widget à l'écran.

Samuel Proulx

  • Full Member
  • ***
  • Messages: 118
    • Voir le profil
Re : [GUI] garder les fenêtres en mémoire ou pas ?
« Réponse #4 le: Août 26, 2012, 04:12:57 am »
Certaines fenêtres peuvent en effet consommer beaucoup de RAM (le magasin par exemple où chaque item (~150) possède une image de 64x64 pixels.

Mais encore là, je dis beaucoup, mais 10Ko x 150, ça fait tout de même uniquement 1.5Mo...Et en plus, toutes les images sont toujours en mémoire dans mon textureManager (bien sûr, ce sont les images uniquement de la GUI. Le sprites des vaisseaux ou des NPCs ne sont pas tous en mémoire. ¨ca dépend de l'endroit du joueur bien évidemment).

Ma vraie question est : est-ce que garder en mémoire 1000 (peut-être plus étant donné le nombre de fenêtres et de Widget qui peuvent être affiché) convexShape va consommer beaucoup de mémoire ?