Welcome, Guest. Please login or register. Did you miss your activation email?

Author Topic: dessiner dans un thread  (Read 3105 times)

0 Members and 2 Guests are viewing this topic.

Yorokobii

  • Newbie
  • *
  • Posts: 3
    • View Profile
    • Email
dessiner dans un thread
« on: May 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
  • *****
  • Posts: 32498
    • View Profile
    • SFML's website
    • Email
Re : dessiner dans un thread
« Reply #1 on: May 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
  • *
  • Posts: 3
    • View Profile
    • Email
Re : dessiner dans un thread
« Reply #2 on: May 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
  • *****
  • Posts: 32498
    • View Profile
    • SFML's website
    • Email
Re : dessiner dans un thread
« Reply #3 on: May 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

Quote
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
  • *
  • Posts: 3
    • View Profile
    • Email
Re : dessiner dans un thread
« Reply #4 on: May 28, 2015, 06:27:48 pm »
en effet merci beaucoup!!