Bonjour à tous,
je suis en train de peaufiner une source qui devrait être proposée sur developpez : un Singleton pour gérer l'affichage SDL
http://www.developpez.net/forums/sho...d.php?t=198093
mon Singleton initialise une fenêtre SDL pour OpenGL mais peut facilement être adapté pour du SDL pur
j'ai inclus une méthode pour passer l'affichage courant en plein écran
je modifie juste la présence du paramètre SDL_FULLSCREEN dans les flags passés à SDL_SetVideoMode
Dans la FAQ de la SDL on peut lire :
c'est bien la méthode conseillée et sensée fonctionner que j'utilise et pourtant ça fonctionne malQ: Why doesn't SDL_WM_ToggleFullScreen() work on Windows?
A: The semantics of SDL_WM_ToggleFullScreen() are that switching between fullscreen and windowed mode is transprent to the application. The display pixels pointer does not change, the display depth does not change, etc. This cannot be guaranteed on Windows. However, there is a simple method you can use to change between fullscreen and windowed mode:
flags ^= SDL_FULLSCREEN;
screen = SDL_SetVideoMode(..., flags);
petite explication avec l'utilisation de ma source :
1) je lance l'appli, avec F1,F2,F3 je change de résolution -> pas de problème
2) je fait espace -> je passe en plein écran -> le triangle qui tourne n'apparait pas
3) je change la résolution avec F1,F2,F3 -> le prog change de résolution en restant donc en plein écran -> le triangle réapparait
4) je fait espace -> le prog retourne en mode fenêtre -> plus de triangle
5) changement de résolution -> le triangle réapparait
dans les cas de changement de résolution où je n'ai pas le triangle, même si je choisi la même résolution que l'actuelle, le triangle réapparait
visiblement, le problème ne se pose pas sous linux
c'est peut-etre un problème avec la carte graphique intel intégrée avec la machine que j'utilise actuellement
si quelqu'un pouvait essayer sous windows avec une autre carte graphique
et donc si quelqu'un a une solution à proposer pour corriger ce problème
ps: pour ceux qui n'ont pas le courage de compiler je joint un zip avec un executable windows (nécessite SDL.DLL pour fonctionner)
Partager