gpt4 book ai didi

opengl - 不明白 glutPostRedisplay 和 glIdleFunc

转载 作者:行者123 更新时间:2023-12-04 05:06:58 24 4
gpt4 key购买 nike

我不太明白 glutPostRedisplay() 是什么用来。好像当我在我的函数中调用它时,在下一帧 display()函数将被调用。但是我不知道该功能与动画有何关系。我们经常将用于物理计算的函数注册为 Idle函数并在那里进行一些计算。但是,如果我们更改参数,例如旋转,具有动画的对象的位置,即使我们不调用 glutPostRedisplay() , display()函数本身会重绘场景。为什么需要调用glutPostRedisplay() ?

第二个问题是关于glutIdleFunc() .我的问题是:CPU 是否可能太忙以至于我们在每一帧都没有空闲时间?

最佳答案

这是一些说明 GLUT 主循环的伪代码

redisplay = True

glutMainLoop:

...

forever:
switch(eventsPoll):
case KEYBOARD:
if(eventKey):
call_keyboardFunction
case MOUSE:
if(eventMouseMove):
if(mousebutton_pressed):
call_mouseMotionFunc
else:
call_passiveMotionFunc
if(eventMouseButton):
call_mouseFunc
case ... // other input events

if( redisplay ):
call_displayFunc
redisplay = False
else
call_idleFunc


glutPostRedisplay:
redisplay = True

glutPostRedisplay 的目的是设置向 glutMainLoop 指示的标志,在其下一次迭代中它将调用显示函数。

关于opengl - 不明白 glutPostRedisplay 和 glIdleFunc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15425354/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com