Redimensionnement de la fenêtre
Redimensionner
Il est possible de redimensionner une fenêtre avec la fonction glutReshapeWindow()
void glutReshapeWindow ( int width, int height );
En entrée
width Nouvelle largeur en pixels de la fenêtre.
height Nouvelle hauteur en pixels de la fenêtre.
Il ne s'agit
pas du redimensionnement de la zone cliente mais de la fenêtre dans sa
totalité (donc y compris brodures, ...).
Le redimensionnement
se produira au prochain appel à la fonction glutMainLoop()
glutReshapeWindow
désactive le mode plein écran s'il est activé (Voir fullscreen).
Sous Unix, X Window
peut ou non appliquer le redimensionnement, voir faire ce qu'il veut !
Etre informé d'un redimensionnement
Il est possible d'être informé par GLUT du redimensionnement de la fenêtre. Par exemple (si ce n'est le cas d'utilité !) pour retailler le Le ViewPort la matrice de projection sous OpenGL.
void glutReshapeFunc ( void (*func) (int width, int height));
En entrée:
func Fonction qui sera lancée à chaque redimensionnement
En sortie:
Rien !
Cette fonction sera déclenchée:
- A chaque redimensionnement de la fenêtre (logiciel via glutReshapeWindow() ou manuellement par l'utilisateur).
- Lors du premier appel à la fonction d'affichage après création de la fenêtre
- Lorsqu'un plan de recouvrement pour la fenêtre est créé.
Elle recevra en entrée les nouvelles dimensions de la fenêtre (en pixel).
Il est possible d'arrêter
l'appel à notre fonction de redimensionnement en passant NULL à
glutReshapeFunc().
Par défaut,
GLUT lance une fonction sur un évènement de redimensionnement.
Donc si vous n'en précisez pas, c'est cette fonction implicite qui sera
déclenchée. Celle-ci effectuant un glViewport(0, 0, width, height)
pour le plan normal de la fenêtre courante.
Si un plan de recouvrement
est établi pour la fenêtre, Notre fonction sera informé
du redimensionnement. Car ce sera à elle de mettre à jour les
plans normal et de recouvrement de la fenêtre courante.
Lorsqu'un fenêtre
racine est redimensionnée, notre fonction devra (si nécessaire)
redimensionner les sous-fenêtres et de les positionner à l'intérieur
de la fenêtre mère.