我們正在窗口中繪製圖形。我們正在更新曲線每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