如何在双缓冲的wxFrame中使用wxGLCanvas?

时间:2017-02-04 15:50:42

标签: c++ wxwidgets double-buffering wxglcanvas

我的wxWidgets应用程序有一个带wxAUIManager的主wxFrame。 在四个窗格中,我有一个wxTreeCtrl,一个wxNotebook(用于管理闪烁的wxPanel),一个wxListBox和一个wxGLCanvas。

为了管理一个闪烁问题,我想让wxFrame双缓冲。然而,这扰乱了wxGLCanvas的渲染(我想这是由于wxGLCanvas本身的双重缓冲特性)。

有没有办法将wxGLCanvas用作双缓冲wxFrame的子节点而不会扭曲渲染?

我在Windows 10机器上使用wxWidgets 3.1.0。

更新:
使用"扭曲渲染"我的意思是我的几何体没有渲染。当主要wxFrame的窗格调整大小时,它们会在GLCanvas上绘制并保持在GLCanvas上绘制,即使窗格保留其原始大小。

我还尝试在wxWidgets示例的多维数据集示例中重现此问题,但事情似乎有用。

1 个答案:

答案 0 :(得分:-1)

IMO你应该在每次GLCanvas改变其大小时进行渲染。此外,在其余窗格之后处理此GLCanvas大小事件(最后一个过程发布了一个大小事件到GLCanvas)。