1

我有两个从 wxGLcanvas 派生的类 bGLpanel 和 bGLpanel1,而 bpane 和 bpane1 分别是这两个类的实例我想在两个 wxGLcanvas 上连续渲染(通过两个单独的线程)或者同时渲染两者。怎么做?现在只是第一个( bpane) 正在我的 App.wxPanel 上呈现,它是 wxNotebook 的一部分。

附加信息:

wiki.wxwidgets.org/Using_wxImage_to_load_textures_for_OpenGL 我正在使用此链接中给出的示例 我正在制作两个不同的类,因为需要打开两个完全不同的流,因此有两种不同的渲染方法,我不知道如何使用它进行替代渲染例子。

4

1 回答 1

0

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

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

你有两个选择:

  1. 每次刷新时更新一个画布,并保留一个标志以便交替完成。

  2. 每次刷新时更新两个画布。

您选择哪个几乎无关紧要。我自己猜#2,但尝试两者并看看你喜欢哪个没什么大不了的。

像这样的东西:

EVT_PAINT(MyApp::RenderRequest)

void MyApp::RenderRequest( wxPaintEvent& evt )
{
  glPlaneA->Render( evt );
  glPlaneB->Render( evt );
}
于 2013-03-06T19:43:36.767 回答