阅读红皮书时,我发现:



哪些时候应该调用glutPostRedisplay()?从这一段,我不明白为什么需要它的功能。

最佳答案

每当必须重新绘制窗口时,就会调用glutDisplayFunc。这包括一个人调用glutPostRedisplay的时间:)

什么时候需要重新绘制窗口?

  • 大小改变时
  • 可见时
  • 当它的某些部分变为可见时
  • 移动时

  • 但是,如果您的显示函数在位置x; y处绘制一个三角形,其中x; y;会怎样呢?是由鼠标位置决定的?在这种情况下,每当鼠标右移时,您都必须要求系统重新绘制窗口?这就是为什么要从MouseFunc()调用glutPostRedisplay的原因。实际上,当您调用glutPostRedisplay时,重绘事件会与其他窗口事件(例如鼠标单击ets)一起排队。本质上,您的mainLoop会从该队列中选择事件并调用其处理程序

    关于opengl - 了解glutDisplayFunc和glutPostRedisplay之间的关系,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4206472/

    10-13 09:24