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

Auteur Sujet: Fenêtre et sf::NonCopyable  (Lu 3236 fois)

0 Membres et 1 Invité sur ce sujet

Cmdu76

  • Full Member
  • ***
  • Messages: 194
    • Voir le profil
Fenêtre et sf::NonCopyable
« le: Mai 25, 2013, 06:56:02 pm »
Bonjour,

j'aimerais utiliser une sf::RenderWindow dans une classe alors que celle-ci soit crée ailleurs.

Voici ce que je voudrais faire :

Application.cpp
Application::Application(sf::RenderWindow window) : m_window(window)
{

}

Si vous avez un autre moyen, j'ai pensé aux pointeurs mais je ne sais pas si cela va marcher aussi ...
Sinon je peux mettre des sf::RenderWindow& window mais ducoup faut que je le mette à pas mal de fonctions...
« Modifié: Mai 25, 2013, 07:08:28 pm par Cmdu76 »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Fenêtre et sf::NonCopyable
« Réponse #1 le: Mai 25, 2013, 08:37:40 pm »
Il faut en effet passer et stocker un pointeur ou une référence, puisque tu ne peux pas copier une instance de fenêtre.
Laurent Gomila - SFML developer

Cmdu76

  • Full Member
  • ***
  • Messages: 194
    • Voir le profil
Re : Fenêtre et sf::NonCopyable
« Réponse #2 le: Juin 02, 2013, 07:22:13 pm »
Désolé de relever ce sujet, mais j'ai trouvé bête d'en refaire un nouveau pour traiter de la même chose...

Je viens de voir sur un projet open source qu'il passait sa RenderWindow en variable globale, je pense que c'est une solution assez simple :)
Donc ducoup pas de pointeurs ni de réferences :)
Parce que les pointeurs peuvent mener aux erreurs et les références faut en mettre beaucoup et cela devient rapidement lourd...

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Fenêtre et sf::NonCopyable
« Réponse #3 le: Juin 02, 2013, 07:29:04 pm »
Citer
Je viens de voir sur un projet open source qu'il passait sa RenderWindow en variable globale, je pense que c'est une solution assez simple
La pire. A éviter. D'ailleurs tout accès global à une variable est à éviter, de manière général.
En plus avoir une instance de sf::RenderWindow globale va te créer des problèmes potentiels bien pire à traiter.

Citer
Parce que les pointeurs peuvent mener aux erreurs et les références faut en mettre beaucoup et cela devient rapidement lourd...
On dirait un truc que tu aurais lu sur les forums de jeuxvideo.com et que tu répétes à tout va sans vraiment chercher à comprendre ;D
Sérieusement, c'est archi-faux, donc ne t'arrête pas sur ce genre d'idée préconçue.
Laurent Gomila - SFML developer

Cmdu76

  • Full Member
  • ***
  • Messages: 194
    • Voir le profil
Re : Fenêtre et sf::NonCopyable
« Réponse #4 le: Juin 04, 2013, 11:09:11 pm »
Bon okay je suis d'accord j'ai jamais encore eu de problème avec les pointeurs mais sur le Sdz, on m'a dit que ça pouvait provoquer des erreurs...
Les références je dis ça par moi même par ma courte expérience. Ajouter un argument sf::RenderWindow partout et assez chiant à la fin...
Et sinon je me disais aussi que j'avais lu quelque part que les variables globales c'était vraiment pas bien donc j'attendais une réaction :)

Merci encore Laurent :)

Cpl.Bator

  • Hero Member
  • *****
  • Messages: 540
    • Voir le profil
Re : Fenêtre et sf::NonCopyable
« Réponse #5 le: Juin 05, 2013, 01:39:30 am »
Dérive ta classe application avec sf::RenderWindow , pas de pointeur , pas de référence , pas de variable globale.

Cmdu76

  • Full Member
  • ***
  • Messages: 194
    • Voir le profil
Re : Fenêtre et sf::NonCopyable
« Réponse #6 le: Juin 05, 2013, 02:09:33 pm »
Qu'est-ce que tu appelles dériver ? Faire une classe qui hérite de RenderWindow ?

Cpl.Bator

  • Hero Member
  • *****
  • Messages: 540
    • Voir le profil
Re : Fenêtre et sf::NonCopyable
« Réponse #7 le: Juin 05, 2013, 03:02:04 pm »
oui.

 

anything