Forum de la communauté SFML
Aide => Fenêtrage => Discussion démarrée par: Bilt le Mai 29, 2016, 06:19:58 pm
-
Bonjour je viens de détecter un potentiel bug sur l'event resize.
En fait le soucis survient lors du clique sur le bouton "agrandir" de la fenêtre (dans mon cas un sf::RenderWindow) cela devrait logiquement retourner un événement resize sauf que pas du tout.
(http://image.noelshack.com/fichiers/2016/21/1464538641-agrandir.png)
Pour confirmer mes dires je vous laisse faire la chose suivante insérez ceci :
switch(event.type){
case sf::Event::Resized :
std::cout << "Agrandir" << std::endl;
break;
}
Puis cliquez sur le bouton agrandir.
Merci d'avance pour toute aide.
Bilt
-
Chez moi ça fonctionne.
Peux-tu fournir un exemple complet et minimal qui reproduit le problème ?
-
(http://image.noelshack.com/fichiers/2016/21/1464549629-1.png)
(http://image.noelshack.com/fichiers/2016/21/1464549629-2.png)
On pourrait imaginer l'interprétation suivante :
//Le fond de couleur beige
m_background[0].position = sf::Vector2f(0, 0);
m_background[1].position = sf::Vector2f(m_window.getSize().x, 0);
m_background[2].position = sf::Vector2f(m_window.getSize().x, m_window.getSize().y);
m_background[3].position = sf::Vector2f(0, m_window.getSize().y);
m_background[0].color = sf::Color(197, 194, 177);
m_background[1].color = sf::Color(197, 194, 177);
m_background[2].color = sf::Color(180, 177, 160);
m_background[3].color = sf::Color(180, 177, 160);
//...
//Quand resize
switch(event.type){
case sf::Event::Resized :
sf::FloatRect visibleArea(0, 0, event.size.width, event.size.height);
m_window.setView(sf::View(visibleArea));
m_background[0].position = sf::Vector2f(0, 0);
m_background[1].position = sf::Vector2f(event.size.width, 0);
m_background[2].position = sf::Vector2f(event.size.width, event.size.height);
m_background[3].position = sf::Vector2f(0, event.size.height);
break;
}
(Je ne peux pas faire mieux mon code est vraiment trop fragmenté)
PS : le bbcode semble plus fonctionner.
-
Okay j'ai résolu le bins :p
L'handler était pas placé au bon endroit