/** * Timer-Callback * Initializes the timer and calls the redisplay of the scene. */ void cbTimer (int lastCallTime) { /* Time since program start. */ int thisCallTime = glutGet (GLUT_ELAPSED_TIME); /* Time since last call */ double interval = (double) (thisCallTime - lastCallTime) / 1000.0f; calcTimeRelatedStuff(interval); /* Register itself as timer for the next time */ glutTimerFunc (1000 / TIMER_CALLS_PS, cbTimer, thisCallTime); /* Re-display */ glutPostRedisplay (); }
/** * Timer-Callback. * Initiiert Berechnung der aktuellen Position und Farben und anschliessendes * Neuzeichnen, setzt sich selbst erneut als Timer-Callback. * @param lastCallTime Zeitpunkt, zu dem die Funktion als Timer-Funktion * registriert wurde (In). */ static void cbTimer (int lastCallTime) { /* Seit dem Programmstart vergangene Zeit in Millisekunden */ int thisCallTime = glutGet (GLUT_ELAPSED_TIME); /* Seit dem letzten Funktionsaufruf vergangene Zeit in Sekunden */ double interval = (double) (thisCallTime - lastCallTime) / 1000.0f; calcTimeRelatedStuff(interval); /* Wieder als Timer-Funktion registrieren */ glutTimerFunc (1000 / TIMER_CALLS_PS, cbTimer, thisCallTime); /* Neuzeichnen anstossen */ glutPostRedisplay (); }