Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [Résolu] sf::Event::Resized sous Windows  (Lu 3109 fois)

0 Membres et 1 Invité sur ce sujet

Rodd

  • Newbie
  • *
  • Messages: 43
    • Voir le profil
    • E-mail
[Résolu] sf::Event::Resized sous Windows
« 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();
« Modifié: Avril 26, 2014, 09:43:39 pm par Rodd »

Rodd

  • Newbie
  • *
  • Messages: 43
    • Voir le profil
    • E-mail
Re : sf::Event::Resized sous Windows
« Réponse #1 le: Avril 18, 2014, 12:34:02 am »
Oups, mauvaise section.. C'était pas Graphique mais Fenêtrage :s

G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Re : sf::Event::Resized sous Windows
« Réponse #2 le: Avril 18, 2014, 01:01:16 am »
Ce bout de code est bien à l'intérieur de ta boucle d'évènements ?

Rodd

  • Newbie
  • *
  • Messages: 43
    • Voir le profil
    • E-mail
Re : sf::Event::Resized sous Windows
« Réponse #3 le: Avril 18, 2014, 01:01:53 am »
Oui oui, ca fonctionne sur Ubuntu :)

G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Re : sf::Event::Resized sous Windows
« Réponse #4 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;
}
« Modifié: Avril 18, 2014, 01:58:17 am par G. »

Rodd

  • Newbie
  • *
  • Messages: 43
    • Voir le profil
    • E-mail
Re : sf::Event::Resized sous Windows
« Réponse #5 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..

Rodd

  • Newbie
  • *
  • Messages: 43
    • Voir le profil
    • E-mail
Re : sf::Event::Resized sous Windows
« Réponse #6 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 :)

 

anything