Bonjour, j'ai un problème au niveau du draw(sf::Text), lorsque ce text est modifié dans un thread, il ne se draw pas bien (il manque tout les chiffres sauf le 0)
En code:
//DANS UN THREAD HORS CLASS
void Updater::downloadFtp()
{
bar.updatePercentage(100);
}
void ProgressBar::updatePercentage(const float& value)
{
std::ostringstream stream;
stream << this->value;
text.setString(stream.str()+"%");
std::cout<<text.getString().toAnsiString()<<std::endl; //Affiche toujours les bons chiffres dans la console.
text.setOrigin((int)(text.getGlobalBounds().width/2),(int)(text.getGlobalBounds().height/2));
text.setPosition(50+(int)(this->value*5), 63);
}
//C'est la seule modification du text qui existe. :(
// Le seul moment où on appelle le text est pour ce code :
//CODE SE TROUVANT DANS UNE FONCTION DE LA CLASSE ProgressBar
{
window.draw(text);
}
Ainsi on peut lire que les chiffres 0 et le % dans la fenetre ..
Pour 10 -> 0%
Pour 93 -> %
Pour 100 -> 00%
Mais correctement dans la console.
Donc..
- Si j'utilise updatePercentage() dans sa propre classe, tout s'affiche correctement.
- Que j'utilise updatePercentage() avec le thread ou avec la classe, le code : std::cout<<text.getString().toAnsiString()<<std::endl; affiche toujours le bon chiffre dans la console.
Voilà, merci de votre aide, je comprends pas ce que j'ai fais de travers..