2013-09-26 56 views
0

Qt嵌入式如何與Linux framebuffer驅動程序一起工作?qt framebuffer工作機制是什麼?

我認爲直接寫入/ dev/fb0會導致圖像閃爍。使用雙緩衝區將解決閃爍問題,但是,將數據從Qt緩衝區複製到幀緩衝區內存的策略是什麼?按時間間隔,然後將整個緩衝區複製到/ dev/fb0或其他東西?而且,對於數據是巨大的,它是如何被複制的?通過啓用DMA的copy_from_user或其他方式?

回答

2

你應該避免使用Qt 4及其有缺陷的QWS設計。我會推薦使用Qt 5,並對此感興趣。

至於Qt 5,它取決於平臺整合插件。我假設你的意思是這個場景中的「linuxfb」插件是你描述的最接近的選項。

在這種特殊情況下,實際上沒有應用乒乓緩衝區。它使用直接複製的QImage。該插件基本上使用默認的QBackingStore

+0

謝謝你的回覆,我不是Qt程序員,但是寫了一個framebuffer驅動程序,用於在ARM板上使用最多的Qt應用程序,我想知道Qte 4.8.x或其他後續版本的行爲,所以我可以知道更詳細的性能。如上所述,Qt 5開始使用QImage直接寫入幀緩衝區內存?你知道Qt 4的機制嗎? –

+0

@李斯利:正如我寫的:Qt4及其QWS設計有幾個缺陷。它也很古老,Qt 5在幾乎所有可能的方面都優越。 Qt 4會更慢地錯過改進,包括性能。 – lpapp

+0

@LeslieLi:你有什麼理由不接受我的答覆作爲答案?我還能爲你做些什麼? – lpapp