[SDL OPENGL] Menu 2d et jeu en 3d
Bonjour,
Je commence à développer un jeu en 3D, mais bon j'aurais souhaité avoir mon menu en 2D. J'ai donc pensé quand utilisant deux écrans, je pourrais "passer" de l'un à l'autre sans trop de problème. Mais cela me créer des bugs assez étranges.
Code:
ecran = SDL_SetVideoMode(800, 600, 32, SDL_FULLSCREEN | SDL_DOUBLEBUF);
Code:
ecran3d = SDL_SetVideoMode(800, 600, 32, SDL_OPENGL | SDL_FULLSCREEN);
Voila pour les deux type d'affichage que je veux utiliser.
Et le code pour changer d'écran
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
if(nouvelfenetre != fenetre){
if(nouvelfenetre==3 && fenetre==1){
//Passage de la fenetre 1 a la fenetre 3
FSOUND_Stream_Stop(musique_menu);
SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));
SDL_Flip(ecran);
//ecran3d = SDL_SetVideoMode(800, 600, 32, SDL_OPENGL);
ecran3d = SDL_SetVideoMode(800, 600, 32, SDL_OPENGL | SDL_FULLSCREEN);
fenetre = 3;
}else if(nouvelfenetre==1 && fenetre==3){
//Passage de la fenetre 3 a la fenetre 1
glClear(GL_COLOR_BUFFER_BIT);
SDL_GL_SwapBuffers();
//ecran = SDL_SetVideoMode(800, 600, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
ecran = SDL_SetVideoMode(800, 600, 32, SDL_FULLSCREEN | SDL_DOUBLEBUF);
SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));
SDL_Flip(ecran);
fenetre = 1;
FSOUND_Stream_Play(FSOUND_FREE, musique_menu);
}
} |
Maintenant les bug :D
En mode pleine écran, aucun problème pour passer du menu 2d à l'écran 3d, par contre, lorsque je veux revenir au menu il ne s'affiche qu'une fois sur trois (environ). (Mais le son et la gestion des évènements marche très bien...)
En mode fenêtre, le problème est inverse. Lorsque que je lance mon écran 3d, il attend bizarrement un event avant d'afficher quoi que ce soit...sinon pour revenir au menu la aucun problème particulier...
Si quelqu’un à une explication se serais top! (Peut être qu’on ne peut tout simplement pas utiliser plusieurs SDL_SetVideoMode ….)