Forum de la communauté SFML

Aide => Fenêtrage => Discussion démarrée par: Rodd le Avril 18, 2014, 12:25:52 am

Titre: [Résolu] sf::Event::Resized sous Windows
Posté par: Rodd le Avril 18, 2014, 12:25:52 am
Bonjour à tous,

j'ai remarqué que sf::Event::Resized ne fonctionne pas sur Windows, il contient la valeur 1 plutôt que la valeur 11 généré lorsqu'on utilise la fonction de sf::Window::setSize().

Par contre celui-ci fonctionne parfaitement sur Linux. (Je n'ai malheureusement pas mon Ubuntu avec moi pour vérifier les valeurs).

J'ai recherché un peu si un post similaire à été créé mais je n'ai pas trouvé.. Mauvaise manip de ma part ou erreur connu ?

if( event.type == sf::Event::Resized ||event.type == 11 ) // sf::Event::Resized pour Linux & 11 pour Windows
     updatePosition();
Titre: Re : sf::Event::Resized sous Windows
Posté par: Rodd le Avril 18, 2014, 12:34:02 am
Oups, mauvaise section.. C'était pas Graphique mais Fenêtrage :s
Titre: Re : sf::Event::Resized sous Windows
Posté par: G. le Avril 18, 2014, 01:01:16 am
Ce bout de code est bien à l'intérieur de ta boucle d'évènements ?
Titre: Re : sf::Event::Resized sous Windows
Posté par: Rodd le Avril 18, 2014, 01:01:53 am
Oui oui, ca fonctionne sur Ubuntu :)
Titre: Re : sf::Event::Resized sous Windows
Posté par: G. le Avril 18, 2014, 01:09:12 am
J'ai utilisé plusieurs versions de SFML sur plusieurs versions de Windows et j'ai jamais eu ça.

Si ce code ne fonctionne pas je pense qu'il faudra préciser quelle version exacte de SFML tu utilises et quelle version de Windows. :o
#include <iostream>
#include <SFML/Window.hpp>

int main()
{
    sf::Window window(sf::VideoMode(800, 600), "My window");

    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
            if (event.type == sf::Event::Resized)
                std::cout << "resized" << std::endl;
            if (event.type == sf::Event::KeyReleased)
                window.setSize(sf::Vector2u(600, 600));
        }
    }
    return 0;
}
Titre: Re : sf::Event::Resized sous Windows
Posté par: Rodd le Avril 18, 2014, 01:44:37 am
Hm étrange ton code fonctionne, même si le resize est provoqué par le code pure..

J'ai oublier de dire que c'est un RenderWindow. Mais dans les deux cas ton code fonctionne..

je vais me plonger un peu plus dans les détails..
Titre: Re : sf::Event::Resized sous Windows
Posté par: Rodd le Avril 26, 2014, 09:43:28 pm
My bad, je sf::Window::create() après le avoir sf::Window::setSize() au lieu de update le sf::View::setSize()

j'ai modifié et ca fonctionne tout bien :)