我们正在窗口中绘制图形。我们每 50 毫秒使用从硬件接收到的值(例如传感器)更新曲线。我们需要以图形格式显示值。所以我们每 50 毫秒更新一次图表。这给出了闪烁的问题。我们正在 X11 中编写代码。有没有办法避免在 X11 中的图形绘图中闪烁。提前致谢。
问问题
1888 次
2 回答
1
这里的关键字是双缓冲。但是我不知道 x11 是否提供了开箱即用的功能,或者您需要自己实现它,所以我会留下谷歌搜索给您;)
除此之外,您可以考虑减少更新频率。也许以 250、500 或 1000 毫秒的周期更新就足够了?当然,这取决于您的用例。
于 2013-02-18T08:39:56.567 回答
1
别客气。唔。好吧,在这种情况下,我会检查将运行它的机器的 X-Server 设置。我最近得到了一张新的 vid 卡,发现 openGL 应用程序每秒运行的帧数更高,但质量很差——图像有明显的“撕裂”——你可以始终看到最后一个和当前帧。在我启用等待 VSynch 之后在 XServer 的设置中,问题消失了。但是,这听起来更像是我过去在 MS windows 下遇到的问题。在那种特殊情况下,每次我向控件发送新图像时,窗口都会重绘图像窗口下方的窗口/对话框的背景。因此,它不是简单地替换旧图像,而是将图像擦除为库存灰色,然后继续替换图像(grrr)。如果您可以使用足够快的屏幕录制软件,您可以在应用程序运行时录制视频,然后逐帧播放视频。或者,如果您搜索“禁用窗口背景重绘/擦除 X11”或类似内容,您可能会得到一些关注。:)
猜猜它还取决于你是使用 Gtk+、wxWidgets 还是仅仅使用原始 X11 代码。
于 2013-02-19T09:37:12.283 回答