Bonjour,
J'ai pas mal consulté le forum pour voir si des gens expérimentaient la même chose que moi mais il m'a semblé que non. N'hésitez pas à me rediriger vers le bon post le cas échéant.
Je suis passé récemment de la SFML 1.6 à la SFML 2.0 et j'ai essayé d'utiliser les nouvelles fonctionnalités au maximum.
Concernant un affichage des lumières pour mon écran, j'utilise donc (comme indiqué sur la doc si j'ai bien compris) sf::RenderTexture pour construire mon image des lumières puis je l'imprime en BlendMultiply pour un bon résultat.
Je dois donc la "clear" entre chaque image, et le problème c'est que cette opération semble prendre assez longtemps parfois (allant jusqu'à 40ms pour clear) mais seulement parfois...
J'utilise la SFML 2.0 avec Qt 4.8.2 compilée en static, sur Windows 8, avec une GeForce 640 de chez MSI.
void MyCanvas::OnUpdate()
{
sf::Clock clock;
// Clear screen
clear(sf::Color(0, 0, 64));
clock.restart();
myRender->clear();
float time = clock.restart().asMilliseconds();
if ( time > 15 )
qDebug() << "Clear RenderTexture took too much time (" << time << "ms)";
// Process events
sf::Event Event;
while (pollEvent(Event))
{
if ( Event.type == sf::Event::Closed ) {
sf::RenderWindow::close();
}
}
}
Avec une sortie console
Démarrage de .\demoClear.exe...Qt: Untested Windows version 6.2 detected!
Clear RenderTexture took too much time ( 32 ms)
Clear RenderTexture took too much time ( 16 ms)
Clear RenderTexture took too much time ( 23 ms)