- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我运行以下循环作为我的 OpenGL 程序的一部分:
void Loop(int state)
{
glutPostRedisplay();
glutTimerFunc(1, Loop, 0);
}
然后,我的程序运行良好,并且我可以通过拖动鼠标在场景中移动相机。
但是,如果我使用这个循环:
void Loop(int state)
{
glutPostRedisplay();
Loop();
}
我无法使用鼠标在场景中移动。正在调用循环,但它只是不处理任何鼠标或键盘输入。
我不明白这是为什么。唯一的区别是,在第一个示例中,使用计时器函数来调用 Loop()
,而在第二个示例中,显式调用 Loop()
,而无需任何操作。延迟。
那么,除了调用 Loop()
之外,glutTimerFunc()
实际上还在做什么?
最佳答案
在第一个示例中,glutTimerFunc
确保在 1 毫秒后调用 Loop
,但它会返回并且不会等待,这意味着 在这种情况下,循环
几乎立即返回。
在第二个示例中,Loop
正在调用自身,这会导致无限递归并锁定程序的主线程,这可以解释为什么在这种情况下什么都不起作用。然后,循环
永远不会返回。如果您让程序运行足够长的时间,您的系统将由于无限递归而耗尽内存。
关于opengl - glutTimerFunc() 实际上做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37663361/
如果我运行以下循环作为我的 OpenGL 程序的一部分: void Loop(int state) { glutPostRedisplay(); glutTimerFunc(1, Lo
我正在使用定时器函数来制作动画,但是当我将它放在 Renderer 类中时我遇到了问题。 void Renderer::animate(int value) { glutTimerFunc(TIME
#include void Keyboard(int value){ glutTimerFunc(33,Keyboard,0); } int main(int argc, char **ar
glutTimerFunc 不会延迟它只是永远循环。像fxp。 while(1) 。我做错了什么吗?还是兼容性问题?我正在使用带有 gcc 的 arch linux x64。我一直在混合使用 32 位
我正在使用 GLUT 计时器功能 的场景比教程和常见问题解答中介绍的场景稍微复杂一些。简化摘要如下: 如果满足条件,屏幕必须以短间隔及时重绘。如果不满足条件,则意味着重新显示是由其他机制控制的,因此定
我知道 glutMainLoop() 用于一遍又一遍地调用显示,保持恒定的帧速率。同时,如果我也有 glutTimerFunc(),它在最后调用 glutPostRedisplay(),那么它可以保持
在运行来自互联网的示例代码时,我陷入了“glutTimerfunc”。我无法弄清楚这个错误是什么。 最佳答案 glutTimerFunc 接受一个指向函数的指针,该函数的签名必须为 void (*fu
我正在使用 UDP 套接字将数据发送到我的 openGL 应用程序。 openGL 应用程序应该在 glutTimerFunc 回调中监听 UDP 套接字,并根据接收到的数据更新 View 。 我的主
我正在尝试做一个小游戏,在我的游戏中我有一些方 block ,当用户点击这些方 block 时,它们会突出显示。为实现此效果,我将 glutMouseFunc 与 glutTimerFunc 结合使用
我是一名优秀的程序员,十分优秀!