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

Auteur Sujet: Draw des objets depuis un Thread  (Lu 2168 fois)

0 Membres et 1 Invité sur ce sujet

Insinfi

  • Newbie
  • *
  • Messages: 6
    • Voir le profil
Draw des objets depuis un Thread
« le: Avril 17, 2016, 01:00:42 pm »
Bonjour, je bosse sur un projet de fin d'année et je me retrouve avec un petit problème j'essaye de faire le clear, draw et display de sprite crée depuis une fonction.
J'ai trouver des code dans ce type ci:
///include
void rendering( RenderWindow* window );
 
int main( void )
{
   sf::RenderWindow window;
   window.create(...);
   sf::Thread t( &rendering, &window );
   t.launch();
   while( window.isOpen() )
   {
      sf::Event event;
      while( window.pollEvent( event )
      {
         ///Gestion des evenements
      }
   }
   return 0;
}
 
void rendering( RenderWindow* window )
{
   while( window->isOpen()
   {
      window->clear();
      ///Draw
      window->display();
   }
}
 
mais je voudrais faire appelle a un objet  mais je me retouve  toujours avec un problème commme quoi je ne peux pas donner 3 arguments a la fonction thread
 sf::Thread thread(&TestThread, &wmenu, &Bouton BoutonPlay);

void TestThread(sf::RenderWindow* window, Bouton* BoutonPlay) {
        BoutonPlay.afficher(window);
        while (window->isOpen())
        {
                window->clear();
                //window->draw(BoutonPlay.getSpriteBouton(0));
                window->display();
        }
}

sf::Sprite Bouton::getSpriteBouton(int NumeroBouton) {
        return SpriteBouton[NumeroBouton];
}
Ou j'arrive avec des erreurs comme quoi il ne le reconnait pas comme objet.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Draw des objets depuis un Thread
« Réponse #1 le: Avril 17, 2016, 01:11:23 pm »
Utilise plutôt std::thread, qui n'a pas ces limitations.
Laurent Gomila - SFML developer

Insinfi

  • Newbie
  • *
  • Messages: 6
    • Voir le profil
Re : Draw des objets depuis un Thread
« Réponse #2 le: Avril 17, 2016, 03:38:21 pm »
Je reçois ce message d'erreur
'std::invoke' : fonction correspondante surchargée introuvable
La spécialisation du modèle de fonction 'unknown-type std::invoke(_Callable &&,_Types &&...)' a échoué

void TestThread(sf::RenderWindow* window, Bouton& BoutonPlay) {
        while (window->isOpen())
        {
                window->clear();
                window->draw(BoutonPlay.getSpriteBouton(0));
                window->display();
        }
}
 

std::thread threadT(&TestThread, &wmenu, &BoutonPlay);
 

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Draw des objets depuis un Thread
« Réponse #3 le: Avril 17, 2016, 07:27:59 pm »
Si BoutonPlay est pris par référence il ne faut pas passer son addresse au thread (retire le &).
Laurent Gomila - SFML developer

Insinfi

  • Newbie
  • *
  • Messages: 6
    • Voir le profil
Re : Draw des objets depuis un Thread
« Réponse #4 le: Avril 17, 2016, 07:43:56 pm »
Un grand merci pour votre aide.
« Modifié: Avril 17, 2016, 07:45:59 pm par Insinfi »