2013-03-06 51 views
0

我有两个类bGLpanel和bGLpanel1派生自wxGLcanvas和bpane和bpane1分别是两个类的实例我想要连续渲染两个wxGLcanvas(通过两个单独的线程),或者渲染两者。怎么做?现在只是第一个(bpane)被渲染在我的App.wxPanel上是wxNotebook的一部分。通过交替渲染或两个单独的线程连续渲染到相同的wxPanel上的两个wxglcanvas

附加信息:

wiki.wxwidgets.org/Using_wxImage_to_load_textures_for_OpenGL我使用这个链接我想提出两个不同的类需要两个完全不同的流给出的例子被打开,因此有两种不同的渲染方法并且我不知道如何使用该示例进行交替渲染。

回答

0

从两个不同线程更新您的显示器将不起作用。 wxWidgets只会从一个主线程更新显示。如果你尝试,会发生令人讨厌的,意想不到的事情。

但是,如果您有两个wxGLCanvas小部件,那么您可以在刷新请求后轮流渲染每个小部件,并且它看起来会很好。

你有两个选择:

  1. 更新每个刷新一个画布,并保持标志,使其交替进行。

  2. 更新每个刷新上的两个画布。

这几乎不重要,你选择。我会自己猜测#2,但尝试两种方法并看看你更喜欢哪种方式并没有什么大不了的。

事情是这样的:

EVT_PAINT(MyApp::RenderRequest) 

void MyApp::RenderRequest(wxPaintEvent& evt) 
{ 
    glPlaneA->Render(evt); 
    glPlaneB->Render(evt); 
} 
+0

怎么办呢交替渲染 – psyche 2013-03-06 19:44:49

+0

http://wiki.wxwidgets.org/Using_wxImage_to_load_textures_for_OpenGL我使用这个链接我提出两种不同类型的两个给出的例子完全不同的流需要打开,所以有两种不同的渲染方法,我不知道如何使用该示例进行交替渲染。 – psyche 2013-03-06 19:51:05