tweaked the animation rate
authorBrian Paul <brian.paul@tungstengraphics.com>
Wed, 22 Mar 2000 18:38:47 +0000 (18:38 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Wed, 22 Mar 2000 18:38:47 +0000 (18:38 +0000)
progs/demos/lodbias.c

index e36acc67cdf75012ef927f82251f4b4e1e0455ad..1d01502d97dc35e960096707dcfa783223c00554 100644 (file)
@@ -39,8 +39,8 @@
 
 static GLfloat Xrot = 0, Yrot = -30, Zrot = 0;
 static GLboolean Anim = GL_TRUE;
-static GLint Bias = 0, DeltaBias = 10;  /* ints avoid fp precision problem */
-static GLint BiasMin = -200, BiasMax = 300;
+static GLint Bias = 0, BiasStepSign = +1; /* ints avoid fp precision problem */
+static GLint BiasMin = -200, BiasMax = 500;
 
 
 
@@ -55,14 +55,26 @@ PrintString(const char *s)
 
 static void Idle( void )
 {
-   Bias += DeltaBias;
+   static int lastTime = 0;
+   int time = glutGet(GLUT_ELAPSED_TIME);
+   int step;
+
+   if (lastTime == 0)
+      lastTime = time;
+   else if (time - lastTime < 10)
+      return;
+
+   step = (time - lastTime) / 10 * BiasStepSign;
+   lastTime = time;
+
+   Bias += step;
    if (Bias < BiasMin) {
       Bias = BiasMin;
-      DeltaBias = 10;
+      BiasStepSign = +1;
    }
    else if (Bias > BiasMax) {
       Bias = BiasMax;
-      DeltaBias = -10;
+      BiasStepSign = -1;
    }
 
    glutPostRedisplay();