compute reasonable animate rate (Marcelo Magallon)
diff --git a/progs/samples/wave.c b/progs/samples/wave.c
index 7ded49b..d3c4687 100644
--- a/progs/samples/wave.c
+++ b/progs/samples/wave.c
@@ -87,9 +87,26 @@
     255, 127, 127, 127,
 };
 
+#if !defined(GLUTCALLBACK)
+#define GLUTCALLBACK
+#endif
+
+
 void GLUTCALLBACK glut_post_redisplay_p(void)
 {
-      glutPostRedisplay();
+    static double t0 = -1.;
+    double t, dt;
+    t = glutGet(GLUT_ELAPSED_TIME) / 1000.;
+    if (t0 < 0.)
+       t0 = t;
+    dt = t - t0;
+
+    if (dt < 1./30.)
+        return;
+
+    t0 = t;
+
+    glutPostRedisplay();
 }
 
 static void Animate(void)