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
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