【问题标题】:How to refresh window inside the idle function in GLUT如何刷新GLUT中空闲功能内的窗口
【发布时间】:2015-10-05 22:38:32
【问题描述】:

我正在使用 GLUT,我需要在空闲函数中刷新绘图,我的代码是这样的:

void idle(){

     for(int i ;i<cant;i++){

          /* do some stuff*/

          glutPostRedisplay();
     }
}

在空闲函数中处理数据我想在每次迭代中重绘的内容。

有人可以帮助我吗?

【问题讨论】:

  • stackoverflow.com/questions/6800512/… - 无论如何,不​​要在空闲时“无限期地阻塞”并且只在最后发布一次重绘。过剩应用程序仍然是单线程的,因此在空闲函数返回之前不会调用重绘。是“此功能后的帖子重新展示”。
  • 感谢您的回答,我将循环移动到显示函数中,并使用 de swapbuffer 函数在每次迭代中绘制图像。
  • Err,这是一个类似的问题 - 阻塞了 glut 设计中的“阶段”之一。

标签: c++ opengl glut


【解决方案1】:

一件(或几件)空闲的事情,然后重新展示。 让计时器(调用空闲)做循环!

您应该确保空闲 + 重新显示的计算负载大大低于您所需的计时器速率(或您期望的 FPS)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-17
    • 1970-01-01
    • 2021-06-03
    • 2018-06-17
    • 1970-01-01
    • 2021-10-29
    相关资源
    最近更新 更多