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

Auteur Sujet: dessiner dans un thread  (Lu 2186 fois)

0 Membres et 2 Invités sur ce sujet

Yorokobii

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
    • E-mail
dessiner dans un thread
« le: Mai 28, 2015, 12:18:12 pm »
Bonjour,
Je suis un peu débutant en programmation et j'essai d'utiliser des threads pour un projet, ce qui, je trouve, n'est pas tâche facile :D
Du coup j'ai essayé de faire un programme simple pour voir un peu le fonctionnement mais je n'arrive même pas à dessiner un simple rectangleshape depuis mon thread et je ne vois pas pourquoi.

voici mon code :
#include <SFML/Graphics.hpp>

void renderingThread(sf::RenderWindow* window)
{
    sf::RectangleShape rect;
    rect.setPosition(0,0);
    sf::Vector2f vect(100,100);
    rect.setSize(vect);
    rect.setFillColor(sf::Color::White);
    // la boucle de rendu
    while (window->isOpen())
    {
        sf::Event event;
        while(window->pollEvent(event)){
            if(event.type==sf::Event::Closed)
                window->close();
        }

        window->clear();
        window->draw(rect);
        // fin de la frame
        window->display();
    }
}

int main()
{
    sf::RenderWindow window(sf::VideoMode(800, 600), "test");

    sf::Thread thread(&renderingThread, &window);
    window.setActive(false);
    thread.launch();
    thread.wait();
/*
    sf::RectangleShape rect;
    rect.setPosition(100,100);
    sf::Vector2f vect(100,100);
    rect.setSize(vect);
    rect.setFillColor(sf::Color::Green);

    while (window.isOpen())
    {
        sf::Event event;
        while(window.pollEvent(event)){
            if(event.type==sf::Event::Closed)
                window.close();
        }
        window.clear();
        window.draw(rect);
        window.display();
    }*/

    return 0;
}
 

et donc lorsque je lance le programme, la fenêtre s'affiche avec mon rectangle mais elle crash directement et je ne vois pas du tout pourquoi... ca fait un moment que je trime dessus mais je ne sais pas du coup help please :D

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : dessiner dans un thread
« Réponse #1 le: Mai 28, 2015, 01:28:42 pm »
Lis bien les tutoriels et la documentation, il y a quelques limitations qui sont bien décrites.

Mais... ne fais pas ça. Ca n'a strictement aucun intérêt. Tu te compliques la vie pour rien.
Laurent Gomila - SFML developer

Yorokobii

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
    • E-mail
Re : dessiner dans un thread
« Réponse #2 le: Mai 28, 2015, 01:48:43 pm »
bin a vrai dire je l'ai lue et relue la doc et je trouvais rien qui pouvait régler ce problème ^^' je n'exclue pas le fait que je n'ai pas vu bien sur, mais du coup ouais il m'aurait bien fallu des réponses un poil plus claires :/

Et oui en effet la ce thread est totalement inutile c'est juste pour illustrer mon problème ^^

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : dessiner dans un thread
« Réponse #3 le: Mai 28, 2015, 01:54:56 pm »
Là :
http://www.sfml-dev.org/tutorials/2.3/window-window-fr.php#choses-ce-savoir-ce-propos-des-fencotres
http://www.sfml-dev.org/tutorials/2.3/graphics-draw-fr.php#dessiner-depuis-un-thread

Citer
Et oui en effet la ce thread est totalement inutile c'est juste pour illustrer mon problème ^^
Je ne parle pas de ce code en particulier, mais bien de l'idée de dessiner depuis un thread de manière générale ;)
Laurent Gomila - SFML developer

Yorokobii

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
    • E-mail
Re : dessiner dans un thread
« Réponse #4 le: Mai 28, 2015, 06:27:48 pm »
en effet merci beaucoup!!