gpt4 book ai didi

c - glutPostRedisplay 在不同的线程中

转载 作者:太空宇宙 更新时间:2023-11-04 03:08:24 25 4
gpt4 key购买 nike

我有一个标准的过剩实现。显示函数重绘每个对象,但我需要不断更新每个对象的某些值。实际上,我能想到的唯一方法是生成一个线程来处理更新。但是,我不能使用来自不同线程的 glutPostRedisplay() 来让 glut 刷新窗口。在过剩循环旁边有一个循环来更新值的好方法是什么?

此外, sleep 几分之一秒(而不是整秒 sleep ())的最佳方法是什么。

最佳答案

如果您需要某种定期更新,您可能需要设置一个 glutIdleFunc .这是一个函数,只要没有事件要处理,就会在循环中调用。如果你想定期调用一些东西(而不是尽可能快),你可能想尝试 glutTimerFunc这允许您安排一些东西在未来的几毫秒内由 GLUT 循环运行。

关于你的第二个问题,如果你需要 sleep 几分之一秒,你可能想尝试 usleep对于微秒分辨率 sleep 周期,或 nanosleep以纳秒为单位指定 sleep 周期(尽管您实际上不会获得纳秒分辨率)。我不知道你使用的是什么平台,也不知道这些在 Windows 上是否可用,但它们应该在任何 POSIX 兼容系统(Linux、BSD、Mac OS X)上可用。但也许出于您的目的,glutTimerFunc 会工作得更好。

编辑添加:看起来在 Windows 上您需要使用 [Sleep]( http://msdn.microsoft.com/en-us/library/ms686298(VS.85%29.aspx)(注意大写 S ),这需要以毫秒为单位的时间。

关于c - glutPostRedisplay 在不同的线程中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1611102/

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