C++ 多个GLcanvas具有不同的上下文,无法在隐藏面板中设置Current(),如何修改场景?

C++ 多个GLcanvas具有不同的上下文,无法在隐藏面板中设置Current(),如何修改场景?,c++,opengl,wxwidgets,C++,Opengl,Wxwidgets,我正在用两个面板实现一个应用程序,每个面板都包含一个GLcanvas。面板表示同一事物的两种类型的视图,其可见性由选择按钮交替显示。在绘制事件中,我检查它们是否可见,以便设置当前画布并绘制它 当我想同时修改两个场景中的某些内容时,问题就出现了。例如,两个场景中对象的纹理变化。我无法设置当前隐藏面板,使用的方法将仅在可见场景中应用 我是否被迫将另一个面板设置为可见以进行修改,然后返回? 处理多个上下文不总是同时可见的多个面板的最佳方法是什么 !!这两个场景的摄影机位置不同,这就是我使用不同上下文的

我正在用两个面板实现一个应用程序,每个面板都包含一个GLcanvas。面板表示同一事物的两种类型的视图,其可见性由选择按钮交替显示。在绘制事件中,我检查它们是否可见,以便设置当前画布并绘制它

当我想同时修改两个场景中的某些内容时,问题就出现了。例如,两个场景中对象的纹理变化。我无法设置当前隐藏面板,使用的方法将仅在可见场景中应用

我是否被迫将另一个面板设置为可见以进行修改,然后返回? 处理多个上下文不总是同时可见的多个面板的最佳方法是什么


!!这两个场景的摄影机位置不同,这就是我使用不同上下文的原因。一张画布上的球体是另一张画布上的立方体

使用最新的wxWidgets trunk,当窗口未显示在屏幕上时,您可以调用SetCurrent,因为其父窗口已隐藏,但窗口本身仍需要显示,请参阅。不幸的是,如果您使用的是已发布的版本,则没有好的解决方案,我能建议的最好方法是将您需要进行的修改存储在某个内部队列中,然后在窗口确实变为可见时将其全部应用,但这当然是非常笨拙的。这可能会更好,只是更新您的本地wx源