Welcome, Guest. Please login or register. Did you miss your activation email?

Author Topic: [Résolu] sf::Event::Resized sous Windows  (Read 3768 times)

0 Members and 1 Guest are viewing this topic.

Rodd

  • Newbie
  • *
  • Posts: 43
    • View Profile
    • Email
[Résolu] sf::Event::Resized sous Windows
« on: April 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();
« Last Edit: April 26, 2014, 09:43:39 pm by Rodd »

Rodd

  • Newbie
  • *
  • Posts: 43
    • View Profile
    • Email
Re : sf::Event::Resized sous Windows
« Reply #1 on: April 18, 2014, 12:34:02 am »
Oups, mauvaise section.. C'était pas Graphique mais Fenêtrage :s

G.

  • Hero Member
  • *****
  • Posts: 1599
    • View Profile
Re : sf::Event::Resized sous Windows
« Reply #2 on: April 18, 2014, 01:01:16 am »
Ce bout de code est bien à l'intérieur de ta boucle d'évènements ?

Rodd

  • Newbie
  • *
  • Posts: 43
    • View Profile
    • Email
Re : sf::Event::Resized sous Windows
« Reply #3 on: April 18, 2014, 01:01:53 am »
Oui oui, ca fonctionne sur Ubuntu :)

G.

  • Hero Member
  • *****
  • Posts: 1599
    • View Profile
Re : sf::Event::Resized sous Windows
« Reply #4 on: April 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;
}
« Last Edit: April 18, 2014, 01:58:17 am by G. »

Rodd

  • Newbie
  • *
  • Posts: 43
    • View Profile
    • Email
Re : sf::Event::Resized sous Windows
« Reply #5 on: April 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
  • *
  • Posts: 43
    • View Profile
    • Email
Re : sf::Event::Resized sous Windows
« Reply #6 on: April 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 :)