Bonsoir, je suis entrain de m'initier à SDL2 ; connaissant déjà la première version, je n'ai pas de difficultés mis à part quelques problèmes : Jusqu'à présent, lorsque je voulais mettre ma fenêtre en plein écran, je récupérais les coordonnées du bureau en faisant :
Puis j'utilisais ces valeurs pour dimensionner la fenêtre et je masquais la barre de titres avec "SDL_NOFRAME". Alors oui, il existe le flag "SDL_FULLSCREEN", mais j'ai arrêté de l'utiliser lorsque j'ai constaté que mon PC refusait d'adapter correctement la fenêtre à l'écran.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 const *SDL_VideoInfo bureau=SDL_GetVideoInfo(); int largeurBureau=bureau->current_w; int hauteurBureau=bureau->current_h;
Avec SDL2, j'ai deux problèmes :
- Il n'y a plus de type SDL_VideoInfo et de fonction SDL_GetVideoInfo() donc je ne sais pas comment récupérer les dimensions du bureau.
- La fenêtre ne s'affiche pas lorsque j'utilise le flag "SDL_WINDOW_BORDERLESS", elle s'affiche en fait seulement dans la barre des tâches. Idem lorsque je fais "SDL_WINDOW_FULLSCREEN", la résolution du bureau change mais je ne vois pas la fenêtre.
Voici le code :
J'ai testé la valeur de "fenetre" après l'appel de SDL_CreateWindow(), aucun problème de ce côté.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 #include <SDL2/SDL.h> #include <stdio.h> int main(int argc,char *argv[]) { SDL_Window *fenetre; SDL_Event evenement; if(SDL_Init(SDL_INIT_VIDEO)<0) { printf("Erreur initialisation SDL !"); return 0; } fenetre=SDL_CreateWindow("Initiation SDL 2",SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED,800,600,SDL_WINDOW_SHOWN|SDL_WINDOW_BORDERLESS); while(1) { SDL_PollEvent(&evenement); if(evenement.window.event==SDL_WINDOWEVENT_CLOSE) break; if(evenement.type==SDL_KEYDOWN) { if(evenement.key.keysym.sym==SDLK_ESCAPE) break; } } SDL_DestroyWindow(fenetre); SDL_Quit(); return 0; }
Merci par avance.
Partager