Merge branch 'master' of git+ssh://joukj@git.freedesktop.org/git/mesa/mesa
[mesa.git] / progs / demos / geartrain.c
index 98addb8eb4bf61a74c6d46d2e22ee2effb8ef627..8363f2abc6d361ceb44fbde121cb40bf871093ef 100644 (file)
@@ -1,4 +1,3 @@
-/* $Id: geartrain.c,v 1.8 2001/10/04 19:14:26 kschultz Exp $ */
 
 /*
  * GearTrain Simulator * Version:  1.00
@@ -913,14 +912,18 @@ draw (void)
 }
 
 
-
-
 static void
 idle (void)
 {
     int i;
+    static double t0 = -1.;
+    double dt, t = glutGet(GLUT_ELAPSED_TIME) / 1000.0;
+    if (t0 < 0.0)
+       t0 = t;
+    dt = t - t0;
+    t0 = t;
     for (i = 0; i < number_of_gears; i++)
-      g[i].angle += g[i].angular_velocity;
+      g[i].angle += g[i].angular_velocity * dt;
     glutPostRedisplay();
 }
 
@@ -1050,6 +1053,7 @@ main (int argc, char *argv[])
     else
        file = argv[1];
 
+    glutInit(&argc, argv); 
     glutInitWindowPosition (0, 0);
     glutInitWindowSize(640,480);
     glutInitDisplayMode (GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE );