在阅读红皮书时,我发现:
glutDisplayFunc(void(*func)(void))是您将看到的第一个也是最重要的事件回调函数.每当GLUT确定需要重新显示窗口的内容时,执行glutDisplayFunc()注册的回调函数.因此,您应该在显示回调函数中放置重绘场景所需的所有例程.
如果您的程序更改了窗口的内容,有时您将不得不调用glutPostRedisplay(),这会给glutMainLoop()一个微调,以便在下一次机会调用已注册的显示回调
哪个时候应该调用glutPostRedisplay()?从这一段开始,我不明白为什么需要它的功能.
Arm*_*yan 16
每当必须重绘窗口时,都会调用glutDisplayFunc.这包括一个人调用glutPostRedisplay的时间:)
什么时候需要重绘窗口?
但是,如果你的显示功能在x位置绘制一个三角形,那么x; y; 是由鼠标位置决定的?在这种情况下,只要鼠标向右移动,您就必须要求系统重绘窗口?这就是你从MouseFunc()调用glutPostRedisplay的原因.实际上,当您调用glutPostRedisplay时,重绘事件会与其他窗口事件(如鼠标单击ets)一起排队.基本上你的mainLoop会从该队列中选择事件并调用它们的处理程序
| 归档时间: |
|
| 查看次数: |
12694 次 |
| 最近记录: |