我们正在窗口中绘制图形。我们正在更新曲线每50ms 与从硬件接收的值,如传感器。 我们需要以图形格式显示这些值。所以我们每50ms更新 图。这给闪烁的问题。 我们在X11中编写代码。有没有办法避免在X11中使用 图形绘图中的闪烁。提前致谢。如何避免使用X11在图形图形中闪烁
回答
这里的关键字是双缓冲。但我不知道x11是否提供了这个开箱即用或者你需要自己实现它,所以我会离开你的谷歌搜索;)
除此之外,你可能会考虑更新频率较低。或许足够以250,500或1000毫秒的时间进行更新?这当然取决于你的用例。
不客气。嗯。那么,在这种情况下,我会检查将运行它的机器的X-Server设置。我最近得到了一张新的vid卡,发现openGL应用程序运行的帧数更多/秒,但质量很差 - 图像中可见“撕裂” - 您可以一直看到最后一帧和当前帧在同一时间。在启用后,在XServer的设置中等待VSynch,问题消失。不过,这听起来更像是我以前在MS Windows下遇到的一个问题。在这种特殊情况下,每次我向控件发送新图像时,窗口都会重新绘制图像窗口下的窗口/对话框的背景。所以,不是简单地更换旧图像,而是在将图像替换为图像(grrr)之前,将图像清除为图像灰色。如果您可以访问足够快的屏幕录制软件,则可以在运行时对应用程序进行视频录制,然后逐帧播放视频。或者,如果您搜索“禁用窗口背景重绘/删除X11”或类似内容,您可能会获得一些牵引力。 :)
猜猜这也取决于你是否使用Gtk +,wxWidgets或只是原始的X11代码。
我们正在使用原始X11代码。我们使用XCopyArea将图像绘制到窗口。我们是否需要在代码中使用XSync命令?我们需要这样做。 – VigneshK 2013-02-19 09:41:54
从XCopyArea手册页读取时,我特别感兴趣地注意到文本_“如果源矩形的区域被遮挡,并且没有保留在后台存储区中,或者指定了源绘制边界外的区域,则这些区域不是而是在所有相应的目标区域上发生,这些目标区域或者是可见的,或者是保留在后备存储区中**如果目标是具有非无背景的窗口,则目标的相应区域将以该背景平铺** “_ - 我会检查目标窗口的背景。 – enhzflep 2013-02-19 10:43:00
谢谢你的回复。我们在正确的区域使用XCopyArea。在我们的代码中,我们没有将背景设置为none。我试图将XSetBackgroundPixmap设置为none,但是我没有得到正确的输出,而是整个窗口用前景色绘制。 – VigneshK 2013-02-19 11:04:20
- 1. 图形闪烁
- 2. 图形闪烁
- 3. 如何避免在C#中的图片框上绘制图形对象闪烁?
- 4. C#图形闪烁
- 5. LWGJL。图形闪烁
- 6. Silverlight图像闪烁 - 如何避免它
- 7. 如何避免图像在列表视图中闪烁
- 8. 避免使用LWJGL闪烁
- 9. 如何避免flash.display闪烁
- 10. 如何避免jquery闪烁?
- 11. 如何避免闪烁iframe?
- 12. Java - 我的图形闪烁
- 13. Windows窗体图形闪烁
- 14. 绘图形状和闪烁
- 15. grid:栅格图形闪烁
- 16. 如何防止Java 2D图形闪烁?
- 17. 如何避免在jQuery中闪烁
- 18. 如何避免负载上的闪烁形式
- 19. 在JApplet中闪烁的图形
- 20. 如何避免闪烁使用绘画方法在面板上绘制矩形?
- 21. 如何避免richTextBox.Clear();闪光/闪烁?
- 22. 闪烁字形
- 23. 如何避免此图形问题?
- 24. 如何在WP7中动态更改图像源时避免图像闪烁...?
- 25. ipywidgets:使用交互时避免闪烁
- 26. 避免在Matlab中保存图形
- 27. jQuery CSS如何避免闪烁?
- 28. 如何避免旋转spriteBatch闪烁?
- 29. 如何避免屏幕闪烁?
- 30. ListView - 如何避免闪烁(.NET/C#)?
窗口库?你是直接画到屏幕上吗?如果是这样,为什么不绘制到屏幕外的缓冲区?然后在完成绘制当前50ms'窗口'的曲线时将其喷射到屏幕上。 – enhzflep 2013-02-18 07:16:27
感谢您的建议,但我们已经使用位图绘制图形,然后复制到窗口,在这种情况下窗口也会闪烁。我们在子窗口中执行此图形。我们创建了三个带有一个根窗口的子窗口。我们在子窗口中绘制图形。我的疑问是我们是否需要处理事件,但现在我们没有使用任何事件 – VigneshK 2013-02-19 09:08:16
答案太长以至于无法发表评论 - 请参阅已添加的“答案” – enhzflep 2013-02-19 09:34:34