glutpostredisplay,mianloop glutPostRedisplay 标记当前窗口需要重新绘制。通过glutMainLoop下一次循环时,窗口显示将被回调以重新显示窗口的正常面板。多次调用glutPostRedisplay,在下一个显示回调只产生单一的重新显示回调。 为了便于理解,用下面的例子来说明: 假设有绘制代码: glutDisplayFunc(display); // opengl drawing goes here glutTimerFunc(30, drive, -1); // physics, movement equations here glutMainLoop(); 另外有代码如下: void drive (int data) { glutTimerFunc(30, drive, -1); // call drive() again in 30 milliseconds /*callback function moves the car. .... move x, y, z, etc 前面的代码不用理解,就是移动了物体,绘制的画面改变了*/ glutPostRedisplay(); } 如果有glutpostredisplay,mianloop运行的过程会像下面这样: drive (-1); display(); drive (-1); display(); drive (-1); display(); ... 如果没有glutpostredisplay,mianloop运行的过程会像下面这样: drive (-1); drive (-1); drive (-1); ...