在使用 Perl 退出 OpenGL 后,如何启动新的 glutMainLoop() ?
我使用 OpenGL 编写了一个 Perl 脚本。它调用 glutMainLoop() 来让用户查看一些内容,然后用户关闭窗口,但我想让他继续使用脚本并重新打开一个新窗口并查看其他一些内容。这可能吗?我发现可以执行这条指令:
glutSetOption(GLUT_ACTION_ON_WINDOW_CLOSE,GLUT_ACTION_GLUTMAINLOOP_RETURNS);
在窗口关闭后返回到代码。但是,如果我再次调用 glut*
函数,它会告诉我如果不调用 glutInit
就无法调用它,如果我调用 glutInit
它告诉我我不能再打电话了!有什么技巧吗?
I've written a Perl script using OpenGL. It calls glutMainLoop()
to let the user view some stuff, then the user closes the window but I want to let him continue using the script and reopening a new window and seeing some other stuff. Is that possible? I've found that it is possible to execute this instruction:
glutSetOption(GLUT_ACTION_ON_WINDOW_CLOSE,GLUT_ACTION_GLUTMAINLOOP_RETURNS);
to return to the code after the window is closed. But then if I call again a glut*
function it tells me that I can't call it without calling glutInit
and if I call glutInit
it tells me that I can't just call it again! Is there some trick?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你不知道。 OpenGL 说:“此例程最多应调用一次在过剩计划中。”
听起来您需要使用没有 GLUT 的 OpenGL,或者至少没有 glutMainLoop。或者,您可以使用空闲回调或计时器回调从主循环内部继续无窗口处理。
You don't. OpenGL says: "This routine should be called at most once in a GLUT program."
Sounds like you need to use OpenGL without GLUT, or at least without
glutMainLoop
. Or maybe you can use an idle callback or timer callback to continue your windowless processing from inside the main loop.