【发布时间】:2017-06-21 21:23:14
【问题描述】:
我的 wxWidgets 应用程序有一个带有 wxAUIManager 的主 wxFrame。 在四个窗格中,我分别有一个 wxTreeCtrl、一个 wxNotebook(在一个用于管理闪烁的 wxPanel 中)、一个 wxListBox 和一个 wxGLCanvas。
为了处理闪烁问题,我希望 wxFrame 双缓冲。然而,这会干扰 wxGLCanvas 的渲染(我猜这是由于 wxGLCanvas 本身的双缓冲性质造成的)。
有没有办法将 wxGLCanvas 用作双缓冲 wxFrame 的子级而不会扭曲渲染?
我在 Windows 10 机器上使用 wxWidgets 3.1.0。
更新:
“失真渲染”是指我的几何图形没有被渲染。当主 wxFrame 的窗格被调整大小时,它们会被绘制在 GLCanvas 上,并且即使窗格保持其原始大小,它们也会保持绘制在 GLCanvas 上。
我也尝试在 wxWidgets 示例中的多维数据集示例中重现此问题,但似乎可行。
【问题讨论】:
-
“干扰/扭曲渲染”是什么意思?
-
@marcks,你用的是什么版本的 wx?什么操作系统/工具包?你能举例说明你在做什么吗?
-
看看
samples/opengl/cube。 -
我已更新问题以澄清问题。我在立方体示例中没有同样的问题。不幸的是,我无法提供一个简单的例子来说明这个问题。在我看来,当 wxFrame 被双缓冲时,GLcanvas 永远不会重新绘制。
标签: c++ wxwidgets double-buffering wxglcanvas