glutPostRedisplay( ) 和glutTimerFunc( )

一、glutPostRedisplay( )

glutPostRedisplay()所执行的功能类似于直接调用显示回调函数display(),但该函数允许实现在对何时真正需要调用显示回调函数而作出决策时,变得更加“智能化”。在GLUT遍历整个事件循环时,必然会检索到许多要求窗口重绘的事件。如果每次都去直接调用显示回调函数,窗口必然会被多次绘制。而使用glutPostRedisplay()之后,就使得在遍历消息队列的整个过程中,只对窗口重绘一次。一般来说,在屏幕需要重绘时,使用glutPostRedisplay()而非直接调用显示回调函数是非常明智的。


二、glutTimerFunc( )

glutTimerFunc(unsigned int millis, void (*func)(int value), int value)函数

1), 定义定时器回调函数 void myTimer(int value)用value区分是哪个定时器

2), 在函数里改变和位置有关的变量,然后调用glutPostRedisplay();用来重绘

3), 在定时函数末尾再次调用glutTimerFunc

 

posted @ 2022-02-13 21:13  少亮  阅读(861)  评论(0)    收藏  举报