Vedek Bareil
2004-11-20, 21:16:58
Hallo,
ich habe folgendes Problem: ich will in unter Verwendung von GLUT ein Programm schreiben, das nach Beenden des glutMainLoop noch was anderes macht (z.B. mittlere Framerate oder Gesamtzahl der gerenderten Polygone ausgeben oder so), also etwa so:
int main(/*...*/)
{
//...
// Enter GLUT Main Loop:
glutMainLoop();
/* anschließende Aktionen */
return 0;
}
Die Frage ist, wie kann ich den Main Loop so verlassen, daß die weiteren Aktionen immer noch durchführbar sind? Bisher hab ich das immer so gemacht, daß ich in der Handler-Funktion für Tastatur-Events als Reaktion auf das Drücken z.B. der Escape-Taste das Kommando exit(0) festgelegt habe:
glutKeyboardFunc(keyboard);
//...
void keyboard(unsigned char key, int x, int y)
{
switch(key)
{
//...
case 0x1B: // Esc gedrückt
exit(0);
}
}
Das Problem ist, daß dadurch mit dem GLUT Main Loop auch immer gleich das Programm selbst beendet wird, also die weiteren Aktionen nicht mehr ausgeführt werden.
Was kann man statt exit(0) verwenden, daß nur der Main Loop und nicht das Programm verlassen wird? Gibt's da vielleicht ne Funktion glutQuitMainLoop oder so?
ich habe folgendes Problem: ich will in unter Verwendung von GLUT ein Programm schreiben, das nach Beenden des glutMainLoop noch was anderes macht (z.B. mittlere Framerate oder Gesamtzahl der gerenderten Polygone ausgeben oder so), also etwa so:
int main(/*...*/)
{
//...
// Enter GLUT Main Loop:
glutMainLoop();
/* anschließende Aktionen */
return 0;
}
Die Frage ist, wie kann ich den Main Loop so verlassen, daß die weiteren Aktionen immer noch durchführbar sind? Bisher hab ich das immer so gemacht, daß ich in der Handler-Funktion für Tastatur-Events als Reaktion auf das Drücken z.B. der Escape-Taste das Kommando exit(0) festgelegt habe:
glutKeyboardFunc(keyboard);
//...
void keyboard(unsigned char key, int x, int y)
{
switch(key)
{
//...
case 0x1B: // Esc gedrückt
exit(0);
}
}
Das Problem ist, daß dadurch mit dem GLUT Main Loop auch immer gleich das Programm selbst beendet wird, also die weiteren Aktionen nicht mehr ausgeführt werden.
Was kann man statt exit(0) verwenden, daß nur der Main Loop und nicht das Programm verlassen wird? Gibt's da vielleicht ne Funktion glutQuitMainLoop oder so?