C++ 独立关闭多个GLUT窗口
在我的GLUT程序中,我创建了两个窗口。当我试图关闭一个窗口时,整个程序将关闭。谁能告诉我如何避免呢 我创建窗口的代码如下C++ 独立关闭多个GLUT窗口,c++,opengl,glut,C++,Opengl,Glut,在我的GLUT程序中,我创建了两个窗口。当我试图关闭一个窗口时,整个程序将关闭。谁能告诉我如何避免呢 我创建窗口的代码如下 int main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA); glutInitWindowPosition(100,100); glutInitWindowSize
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,您需要自己创建主循环等。总之,这更易于使用,而且它让您可以对OpenGL程序进行更多的控制。另外,如果您还没有,您应该获得类似的功能。您刚刚将GLUT的功能留给了这种需求。但你很幸运:GLUT=/=OpenGL,还有许多其他框架可以满足你的需求。看看Qt吧,它不仅为您提供了一个运行时环境和一个OpenGL小部件,而且还提供了一组用于绘制UI元素的小部件。@datenwolf如果您需要更新GLFW知识,3.0版支持多个窗口。