Bonjour,
J'ai essayé d'utiliser sf::view pour résoudre ce problème mais je ne dois pas les utiliser comme il faut.
Voilà mon code qui doit permettre de répondre aux problématiques que j'ai exposé plus haut :
// Récupération de la résolution de l'écran du client et on crée la fenêtre en conséquence
sf::VideoMode clientVideoMode = sf::VideoMode::getDesktopMode();
// si le format d'écran n'est pas 16:9 on doit rajouter les bandes noires
if(clientVideoMode.width / clientVideoMode.height != 16/9)
{
// calcul de la taille de la bande noire du dessus
float decalY = (clientVideoMode.height - (clientVideoMode.width * 9 / 16)) / 2;
this->mainView = sf::View(sf::FloatRect(0, 0, 1920, 1080));
// On décale la vue vers le bas
this->mainView.move(sf::Vector2f(0, decalY));
}
else
{
this->mainView = sf::View(sf::FloatRect(0, 0, 1920, 1080));
}
// Pour finir on crée la fenêtre et on set la vue.
globals.window.create(clientVideoMode, "Abysses v0.1", sf::Style::Fullscreen);
globals.window.setView(this->mainView);
Voilà le code, le problème est que ça ne fonctionne pas du tout...
Quand l'écran est en 16:9 pas de soucis, mais si on tape dans le 16:10 ou le 4:3, pas de bandes noir, l'image prend tout l'écran quand même.