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)
glColor3fv(facet->color);
} else {
thisColor = facet->color;
- glMaterialfv(GL_FRONT_AND_BACK, GL_COLOR_INDEXES,
+ glMaterialfv(GL_FRONT_AND_BACK, GL_COLOR_INDEXES,
facet->color);
}
} else {
}
}
-static void SetColorMap(void)
+static void SetColorMap(void)
{
static float green[3] = {0.2, 1.0, 0.2};
static float red[3] = {1.0, 0.2, 0.2};
- float *color, percent;
- GLint *indexes, entries, i, j;
+ float *color = 0, percent;
+ GLint *indexes = 0, entries, i, j;
entries = glutGet(GLUT_WINDOW_COLORMAP_SIZE);
glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE, lmodel_twoside);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
-
+
glMaterialfv(GL_FRONT, GL_SHININESS, front_mat_shininess);
glMaterialfv(GL_FRONT, GL_SPECULAR, front_mat_specular);
glMaterialfv(GL_FRONT, GL_DIFFUSE, front_mat_diffuse);
glClearColor(0.0, 0.0, 0.0, 0.0);
glShadeModel(GL_FLAT);
-
+
glFrontFace(GL_CW);
glEnable(GL_DEPTH_TEST);
GLint i;
rgb = GL_TRUE;
- doubleBuffer = GL_FALSE;
+ doubleBuffer = GL_TRUE;
frames = 10;
widthX = 10;
widthY = 10;