Das allerletzte, das Sie tun müssen, ist glutMainLoop(void) aufzurufen. Alle Fenster die erzeugt wurden, werden jetzt dargestellt, und das Rendern zu diesen Fenstern ist nun wirksam. Die Ereignisverarbeitung beginnt und der registrierte Rückruf für die Anzeige wird ausgelöst. Sobald diese Schleife aufgerufen ist, wird sie niemals verlassen!
Man kann folgende Routinen benutzen, um Callbackbefehle zu registrieren, die aufgerufen werden, wenn das spezifizierte Ereignis vorkommt.
glutReshapeFunc(void(*func)(int w, int h)) zeigt an, welche Aktion benutzt wird, wenn die Größe des Fensters angepaßt werden soll.
glutKeyboardFunc(void(*func)(unsigned char key, int x, int y)) und glutMouseFunc(void(*func)(int button, int state, int x, int y)) erlauben Ihnen die Verbindung einer Tastatur- oder Maustaste mit einer Routine, die aufgerufen wird, wenn eine Taste gedrückt oder losgelassen wird.
glutMotionFunc(void(*func)(int x, int x)) registriert eine Routine die aufgerufen werden soll, wenn die Mause bewegt wird, während eine Maustaste gleichzeitig gedrückt wird.
Man kann eine Funktion festlegen, die ausgeführt werden soll, wenn keine anderen Ereignisse anhängig sind - zum Beispiel, dann wenn die Ereignisschleife sonst untätig wäre - mit glutIdleFunc(void(*func)(void)). Diese Routine akzeptiert einen Zeiger auf die Funktion als einziges Argument. Übergeben Sie NULL um die Ausführung der Funktion zu verhindern.