我刚刚开始使用OpenGL,似乎不容易理解glutMainLoop()
那里真正发生的事情的工作?在任何函数调用响应之前,它是否一直无所事事?
它会反复调用显示回调,在两者之间调用空闲,以便在可能的情况下保持特定的帧速率,以及其他必要时(例如,如果调整窗口大小或触发输入事件).
本质上,在这个函数中是主程序循环,其中GLUT为您完成大部分工作,并允许您在这些回调中简单地设置特定的程序逻辑.我和GLUT合作已经有一段时间了,起初它确实令人困惑.
在您的显示中,回调显然应该是您绘制应该进行的任何事情的主要逻辑.在空闲回调中应该是一些非常轻量级的操作,以确定从上次调用显示到下一次状态的状态变化.例如,如果您正在制作动画,则可以在此处更改其位置或方向.