Bonjour,
Je suis passé de SFML 2.1 à la dernière mouture. J'ai une erreur à l'exécution que je n'avais pas avant:
#include <iostream>
#include <SFML/Graphics.hpp>
using namespace std;
int main()
{
sf::RenderWindow app(sf::VideoMode(800,600,32),"sf::String manipulation");
app.setVerticalSyncEnabled(true);
sf::Font arial;
if (!arial.loadFromFile("arial.ttf")) return -2;
sf::Text text;
text.setFont(arial);
text.setString("");
text.setPosition(200,300);
while (app.isOpen())
{
sf::Event event;
while (app.pollEvent(event))
{
if (event.type == sf::Event::Closed) app.close();
}
app.clear(sf::Color::Blue);
app.draw(text);
app.display();
}
return EXIT_SUCCESS;
}
Le fait de mettre text.setString(""); fait planter l'application.
Le simple fait de déclarer
sf::String s;
et de ne pas l'utiliser fait également planter l'application à la fermeture.
Que se passe-t-il ? Auparavant, l'on pouvait afficher un sf::Text comprenant une sf::String vide ce qui évitait des tests nombreux.
J'ai compilé SFML à partir des sources grâce à la dernière version mingw de Nuwen (11.6 avec GCC 4.8.2)