Forum de la communauté SFML

Aide => Fenêtrage => Discussion démarrée par: Chaore le Août 01, 2012, 03:02:43 am

Titre: [SFML 2.0]Redimensionner sans zoomer [Résolu]
Posté par: Chaore le Août 01, 2012, 03:02:43 am
Bonjour,

Étant un ancien utilisateur de la SDL, j'ai aujourd'hui changé toutes les fonctions de mon code pour le faire fonctionner avec SFML.

Je dois dire que je suis très heureux des fonctionnalités offerts par cette bibliotèque.  Mais voilà que je suis confronté à un problème.

Lorsque je redimensionne ma fenêtre, je récupère le Vector2i laissé en retour par sf::Mouse::getPosition pour pouvoir l'utilisé comme paramètre pour dessiner un rectangle.  De ce côté aucun problème, cependant, la SFML prend l'initiative de faire un zoom/dézoom  par elle-même alors que je n'ai pas besoin de cette fonctionalité.  Alors je me demendais si il n'y avait pas une fonction ou un paramètre pour empêcher que cela se produise.


Côté recherche, j'ai regardé ici: http://www.sfml-dev.org/documentation/2.0/classsf_1_1RenderWindow.php

Donc, je ne vois qu'une seule solution, devoir créer une vue qui va s'ajuster en fonction des paramètres reçus pour ne pas faire de zoom.  Mais j'aimerais vraiment ne pas avoir à le faire.  Alors si vous avez la solution/suggestion, j'en serais heureux.


Bonne soirée/nuit.
Chaore.


EDIT:  Je viens de voir que avec sf::RenderWindow::DefaultGetView()  je peux obtenir la vue par défault, sauf que mon problème reste que j'aimerais me passer de devoir créer un objet view.
Titre: Re : [SFML 2.0]Redimensionner sans zoomer
Posté par: Laurent le Août 01, 2012, 08:08:05 am
C'est pas si dramatique que ça en a l'air.

case sf::Event::Resized:
    window.setView(sf::View(sf::FloatRect(0, 0, event.size.width, event.size.height)));
    break;

La vue par défaut va produire un zoom, donc il faut que tu utilises une autre vue, qui elle s'adapte à la nouvelle taille de la fenêtre.
Titre: Re : [SFML 2.0]Redimensionner sans zoomer
Posté par: Chaore le Août 01, 2012, 01:46:33 pm
D'accord je vois.

Et bien merci !