我们正在窗口中绘制图表。我们每50ms更新一次曲线 从硬件接收的值说像传感器。 我们需要以图形格式显示值。所以我们正在更新 每50ms的图表。这会产生闪烁问题。 我们在X11中编写代码。有没有办法避免闪烁 X11中的图形绘制。提前谢谢。
答案 0 :(得分:1)
这里的关键字是双缓冲。但是我不知道x11是否提供了开箱即用的功能,或者你需要自己实现它,所以我会留下google搜索给你;)
除此之外,您可以考虑不经常更新。也许这足以在250,500或1000毫秒的时间段内更新?这当然取决于你的用例。
答案 1 :(得分:1)
欢迎你。嗯。那么,在这种情况下,我会检查将运行它的机器的X-Server设置。我最近得到了一张新的视频卡,发现openGL应用程序运行的帧数/秒更高,但质量非常差 - 图像有明显的“撕裂” - 你可以看到最后一个和当前帧同时出现。在XServer的设置中启用等待VSynch 之后,问题就消失了。但是,这听起来更像是我过去在MS窗口中遇到的问题。在这种特殊情况下,每次我向控件发送一个新图像时,窗口都会重新绘制图像窗口下窗口/对话框的背景。因此,它不是简单地替换旧图像,而是将图像擦除为股票灰色,然后继续替换图像(grrr)。如果您可以访问足够快的屏幕录制软件,则可以在运行时对应用进行视频,然后逐帧播放视频。或者,如果您搜索“禁用窗口背景重绘/擦除X11”或类似的东西,您可能会获得一些牵引力。 :)
猜猜它还取决于你是否使用了Gtk +,wxWidgets或者只是原始的X11代码。