Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt4中的OpenGL更新率_Qt_Opengl_Qt4 - Fatal编程技术网

Qt4中的OpenGL更新率

Qt4中的OpenGL更新率,qt,opengl,qt4,Qt,Opengl,Qt4,我正在Qt4.7中开发一个应用程序,它使用OpenGL。 我知道必须调用updateGL()才能刷新视图,从backbuffer进行交换,但是,应该多久执行一次? 应该尽可能频繁地进行,因为我正在显示动画(即没有静态图像)。 我知道最大速率(fps)是监视器刷新的倍数。假设监视器垂直刷新频率为50hz。updateGL()最多每20毫秒调用一次。 如果updateGL()的完成时间超过20毫秒,会发生什么情况? 如果我每隔1毫秒调用一次updateGL(),会有什么问题吗?(即,使用排队的upd

我正在Qt4.7中开发一个应用程序,它使用OpenGL。 我知道必须调用updateGL()才能刷新视图,从backbuffer进行交换,但是,应该多久执行一次?
应该尽可能频繁地进行,因为我正在显示动画(即没有静态图像)。
我知道最大速率(fps)是监视器刷新的倍数。假设监视器垂直刷新频率为50hz。updateGL()最多每20毫秒调用一次。
如果updateGL()的完成时间超过20毫秒,会发生什么情况?

如果我每隔1毫秒调用一次updateGL(),会有什么问题吗?(即,使用排队的updateGL()调用事件溢出堆栈?

交换通常等待vsync,因此您可以随时调用它,这样您就不会得到剪切或工件(以防担心)

W.r.t.Qt事件,或者使用设置为fast的QTimer(如果事件处理速度不够快,即没有升级事件队列,则会自动丢弃事件),或者,您可以在updateGL结束时发布一个重画事件,本质上是调用您自己


后者可能不适合您,但这是一种确保绘制循环尽可能快但不更快的简洁方法。

好的。这是我想知道的(丢弃事件)。感谢大家投票选出有用的答案,并接受给出答案的答案。