是否可以在 OPENGL 中根据用户的意愿打开一个 window (假设用户希望在第 n 次迭代或 n+1 等时显示)

Is it possible to open a window according to the wish of user in OPENGL (Suppose user wants the display at n th iteration or n+1 or so on)

这样的程序应该运行在后面并且当用户想要查看当前状态的显示时window应该弹出。再次 window 应该在下次用户想要显示时处于更新状态。

由于 glutMainLoop() 代码在显示后停留在第一次迭代。当其删除的代码工作正常但没有创建 window 用于显示时。

OpenGL 不处理 windows。 glutMainLoop 不是 OpenGL 的一部分,而是 GLUT,它是一个不隶属于 OpenGL 的第三方库(它用于编写使用 OpenGL 的应用程序,但 GLUT 既不是 OpenGL 规范的一部分,也不是由 OpenGL 维护或指定的科罗诺斯)。


Because of glutMainLoop() code is stuck at 1st iteration after display.

glutMainLoop 从不 returns。您可以在 GLUT 回调中创建 GLUT windows 就好了。当然,要使用户输入起作用,您至少需要一个 GLUT window;或者您可以尝试在 GLUT 空闲回调中轮询输入标准输入,但建议不要这样做。

根据您使用的 GLUT 版本,可能有一个函数 glutMainLoopEvent(),这将导致渲染渲染一帧,然后从调用它的地方继续。我认为这个功能可能只存在于 FreeGLUT 中。