2017-05-17 72 views
0

我正在开发基于GTK3的应用程序,使用GtkGLArea widget创建OpenGL窗口,在Windows上构建应用程序我使用的是64位的msys2系统。 构建应用程序没有问题,它只用一个OpenGL窗口就可以工作。 但是,我的程序旨在处理多个项目,因此每个项目都有一个GtkGLarea。这对Linux非常适用。 但是,在窗口上,它可以与一个GtkGLArea一起使用,但只要使用多个窗口,只有一个窗口(第一个被创建)保持活动状态,并且其他窗口中不显示任何信息。如果我点击任何其他窗口,那么第一个窗口的内容会更新,我应该在与之交互的窗口中显示内容...GTK3 + OpenGL for windows:多个GtkGLArea(即OpenGL上下文)

我注意到我可以同时打开许多我的程序实例一个GtkGLAera工作得很好,因此OpenGL上下文的数量不成问题,只有在我的程序出现的同一个交互/对话/管理中。

有什么方法可以纠正这种行为?

回答

0

您应该使用wglMakeCurrent()模拟来设置当前上下文,使用后应该调用wglMakeCurrent(NULL,NULL)来释放上下文,以便其他小部件将能够使用OpenGL。