IntroductionBonjour, je suis actuellement sur un projet utilisant la SFML, mais en voulant dessiner un sprite puis une shape, le programme renvoie un segmentation faut dès que je ferme la fenêtre.
DétailsVoici le code minimal qui plante :
sf::Texture texture;
sf::Sprite sprite;
sf::CircleShape shape;
sf::RenderWindow window(sf::VideoMode(225, 225), "Window");
if(!texture.loadFromFile("textures/texture.png", sf::IntRect(0, 0, 225, 225)))
{
std::cerr << "Unable to load texture.png" << std::endl;
return -1;
}
sprite.setTexture(texture);
shape.setRadius(200);
shape.setFillColor(sf::Color::Green);
while(window.isOpen())
{
sf::Event event;
while(window.pollEvent(event))
{
switch(event.type)
{
case sf::Event::Closed:
window.close(); //C'est à ce moment là que ça à l'air de planter.
return 0;
break;
case sf::Event::KeyPressed:
break;
default:
break;
}
}
window.clear();
window.draw(sprite);
window.draw(shape); //si je le dessine avant ou pas du tout, ça ne plante pas.
window.display();
}
Sinon je suis sous Windows 7, j'utilise g++ que j'ai téléchargé via le lien directement dans la page de téléchargement de la SFML (MinGW Builds 6.1.0 (64-bit)), et la SFML j'ai pris GCC 6.1.0 MinGW (SEH) - 64-bit.
Le code de la compilation ressemble à ça :
g++ -std=c++17 -Wall -Wextra -pedantic -c src/*.cpp -I include/ -I C:/SFML-2.4.2/include
g++ *.o -o tmp.exe -L C:/SFML-2.4.2/lib -lsfml-system -lsfml-graphics -lsfml-window -lsfml-main
Je vous remercie de votre aide.