OpenGL en fullscreen ou mode fenêtré
En fait, il n'y a rien de bien particulier, puisqu'il s'agit d'opérations qui ne sont pas gérées par OpenGL, et donc gérées par Microsoft.
Tout ceci est donc étudié dans la section parlant du développement en C sous Windows:
Changer de mode graphique/résolution
Pour passer en fullscreen, généralement, il y aura deux étapes:
- Changer le mode graphique avec éventuellement une énumération des résolutions disponibles. On pourra laisser l'utilisateur choisir. Voir le chapitre une Enumération et changement du mode graphique
Dans notre cas, je reste simple, voici un exemple de classe nommée cartegraphique qui change de mode: (par défaut 640*480*16).
Evidemment, ce n'est qu'un exemple qui est donc largement améliorable. Mais il fallait rester le plus simple possible !
Création d'une fenêtre en plein écran ou non
- Création d'une fenêtre en fullscreen
Après avoir changé le mode d'affichage, il est nécessaire d'avoir une zone cliente occupant la totalité de l'écran. Là encore, il s'agit de codage purement Windows...
Mais si le fullscreen n'est pas possible ou si l'utilisateur veut travailler en mode fenêtré, nous aurons alors généralement besoin de créer une fenêtre dont la taille dépendra de celle de la zone cliente (Généralement, la zone cliente ayant une taille correspondant aux dimensions que nous aurions utilisé en mode fullscreen - plein écran, càd avec changement de résolution !):
- Création d'une fenêtre en fonction de la taille de la zone cliente.
La classe de
la fenêtre windows est créée lors de la création
de l'instance GLWindows. Cette classe est unique, le nom étant composé
de OpenGL - n°instance. Cela résout le risque de destruction de la
classe par une instance GLWindows tierce.