独立关闭多个GLUT窗口
closing multiple GLUT windows independently
在我的GLUT程序中,我创建了两个窗口。当我试图关闭一个窗口时,整个程序都会关闭。有人能告诉我们如何避免吗?
我创建窗口的代码如下
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(ww,wh);
window1 = glutCreateWindow("sample");
glutReshapeFunc(changeSize);
glutIdleFunc(renderScene);
glutDisplayFunc(renderScene);
window3 = glutCreateWindow("sample2");
glutReshapeFunc(changeSize);
glutDisplayFunc(renderScene2);
glutIdleFunc(renderScene2);
glutMouseFunc(mouse);
glutPostRedisplay();
glutMainLoop();
return 1;
}
我不记得GLUT能够像那样在同一个线程中独立关闭窗口。由于您只使用一个glutMainLoop()
调用来启动它们,因此当主循环对于一个窗口被终止时,它对于所有窗口都被终止。
您可以尝试在自己的线程中创建窗口。这可能奏效,但我不完全确定
你可以尝试的其他方法是使用GLFW,使用GLFW,你需要自己创建主循环等。最重要的是,它更容易使用,并且可以让您对OpenGL程序有更多的控制。此外,如果你还没有,你应该得到类似GLEW的东西。
您刚刚将GLUT的功能留给了这个需求。但你很幸运:GLUT=/=OpenGL,还有许多其他框架可以满足你的需求。不如看看Qt,它不仅为您提供了一个运行时环境和OpenGL小部件,还提供了一大组用于绘制UI元素的小部件。
相关文章:
- GLEW/GLUT:调用init并创建一个窗口后,取消初始化并重新初始化?
- Glut和Gnuplot窗口不同时出现
- OpenGL /Glut在Maineventloop()之后创建窗口
- 将键盘上输入的文本打印到 GLUT 窗口
- 如何从 GLUT 坐标转换为窗口坐标
- 如何使用GLUT创建两个主窗口
- 独立关闭多个GLUT窗口
- GLUT显示空白窗口
- WinAPI窗口中包含的OpenGL/GLUT视图
- OpenGL/GLUT-更新几个窗口
- 控制台窗口有图标,但 OpenGL/GLUT 窗口没有。为什么?
- 如何在不终止应用程序的情况下关闭GLUT窗口
- OSX: GLUT窗口永远不会出现
- 我试图使用 GLUT 制作一个窗口来使用 OpenGL,但它给了我不理解的错误
- 调整我简单的OpenGL/GLUT窗口的大小会产生奇怪的线条
- c++更新OpenGL/Glut窗口
- 我可以制作一个无法打开终端窗口的 OS X Glut 应用程序吗?
- 在OSX上浮动没有标题栏的GLUT窗口
- GLUT窗口不会刷新
- c++ GLUT窗口菜单栏