1
Fenêtrage / Clignotement avec une RenderTexture
« le: Octobre 13, 2013, 12:14:47 pm »
Bonjour,
J'ai un problème d'affichage en plein écran, quand je cree une RenderTexture sans même l'afficher, l’écran clignote en noir deux fois très rapidement. J'ai découvert ce problème il y a quelques jours et je n'arrive pas a le régler, et c'est gênant comme je crée assez souvent des RenderTextures dans mon jeu pour les shaders.
Je suis passé a la sfml 2.1 au cas ou, mais ça n'a rien changé...
J'ai donc ecrit un programme minimal qui recrée le bug, il affiche une fenêtre orange en plein écran et recrée une RenderTexture quand on clique dessus. Il y a bien le clignotement qui apparaît comme dans mon jeu. Voici le code:
Pour info, j'ai deux écrans et le deuxième aussi clignote en même temps que le premier. Et le clignotement n’apparaît qu'en plein écran.
Merci de votre aide!
J'ai un problème d'affichage en plein écran, quand je cree une RenderTexture sans même l'afficher, l’écran clignote en noir deux fois très rapidement. J'ai découvert ce problème il y a quelques jours et je n'arrive pas a le régler, et c'est gênant comme je crée assez souvent des RenderTextures dans mon jeu pour les shaders.
Je suis passé a la sfml 2.1 au cas ou, mais ça n'a rien changé...
J'ai donc ecrit un programme minimal qui recrée le bug, il affiche une fenêtre orange en plein écran et recrée une RenderTexture quand on clique dessus. Il y a bien le clignotement qui apparaît comme dans mon jeu. Voici le code:
#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow window(sf::VideoMode::getFullscreenModes()[0], "Blink...", sf::Style::Fullscreen);
sf::RenderTexture *t = new sf::RenderTexture();
t->create(200, 200);
while(window.isOpen())
{
sf::Event event;
while(window.pollEvent(event))
{
if(event.type == sf::Event::Closed)
window.close();
}
if(sf::Mouse::isButtonPressed(sf::Mouse::Left)) {
delete t;
t = new sf::RenderTexture();
t->create(200, 200);
}
window.clear(sf::Color(255, 100, 30));
window.display();
}
delete t;
return 0;
}
int main()
{
sf::RenderWindow window(sf::VideoMode::getFullscreenModes()[0], "Blink...", sf::Style::Fullscreen);
sf::RenderTexture *t = new sf::RenderTexture();
t->create(200, 200);
while(window.isOpen())
{
sf::Event event;
while(window.pollEvent(event))
{
if(event.type == sf::Event::Closed)
window.close();
}
if(sf::Mouse::isButtonPressed(sf::Mouse::Left)) {
delete t;
t = new sf::RenderTexture();
t->create(200, 200);
}
window.clear(sf::Color(255, 100, 30));
window.display();
}
delete t;
return 0;
}
Pour info, j'ai deux écrans et le deuxième aussi clignote en même temps que le premier. Et le clignotement n’apparaît qu'en plein écran.
Merci de votre aide!