【SylixOS】Qt 基於FrameBuffer渲染界面
阿新 • • 發佈:2018-12-24
使用 流程圖 界面 屏幕 watermark 開發人員 內核 sfb drm 簡介 1
SylixOSFB 1
2.1 插件的初始化 1
2.2 窗口繪制 1
2.3 SylixOSFB的實現 2
KMS:利用內核配置模式和drm機制,配合egl-device實現的帶有GPU加速模式。
XCB:是在X11窗口管理系統嵌入OpenGL渲染模式
Wayland:是一套輕量級的窗口管理系統,采用傳統的C/S框架,可以實現基於FrameBuffer和OpenGL兩種渲染方式。
2.SylixOSFB
2.1插件的初始化
SylixOSFB遵循QPA插件接口規範,在Qt程序初始化時,初始化平臺管理窗口、事件分發、鼠標鍵盤輸入管理、Screen屏幕繪制。如圖 2.1所示
圖 2.1 插件初始化
2.2窗口繪制
在SylixOSFBScreen中通過打開fb0設備獲取屏幕信息,再通過mmap內存映射,刷新屏幕像素值。如圖 2.2所示
圖 2.2 FrameBuffer讀寫實現
2.3SylixOSFB的實現
下圖是SylixOSFB插件和QtGui層交互流程圖。如圖 2.3所示
圖 2.3 SylixOSFB交互流程
2.1 插件的初始化 1
2.2 窗口繪制 1
2.3 SylixOSFB的實現 2
1.簡介
Qt是目前一款比較主流的人機交互界面庫。它有很強的跨平臺能力,可移植性好,被廣泛應用在PC端以及嵌入式領域。Qt可大致分為兩部分:QtGui和QtCore,QtGui提供開發人員一套完整的開發控件,可以快速開發客戶端界面;QtCore則負責底層渲染以及事件驅動等。而本章節主要介紹的是Qt的渲染機制,在Qt5中將底層渲染和窗口管理大致分為:
SylixOSFB、LinuxFB、KMS、XCB、Wayland。
SylixOSFB和LinuxFB采用相同的渲染方式:直接往FrameBuffer寫像素值,這種方式只支持軟件渲染,主要使用CPU讀寫內存的方式。通過設置環境變量QT_QPA_PLATFORM=sylixosfb:fb=/dev/fb0和在程序啟動時添加-platform sylixosfb兩種方式運行Qt程序。
XCB:是在X11窗口管理系統嵌入OpenGL渲染模式
Wayland:是一套輕量級的窗口管理系統,采用傳統的C/S框架,可以實現基於FrameBuffer和OpenGL兩種渲染方式。
2.SylixOSFB
2.1插件的初始化
SylixOSFB遵循QPA插件接口規範,在Qt程序初始化時,初始化平臺管理窗口、事件分發、鼠標鍵盤輸入管理、Screen屏幕繪制。如圖 2.1所示
圖 2.1 插件初始化
2.2窗口繪制
在SylixOSFBScreen中通過打開fb0設備獲取屏幕信息,再通過mmap內存映射,刷新屏幕像素值。如圖 2.2所示
圖 2.2 FrameBuffer讀寫實現
2.3SylixOSFB的實現
下圖是SylixOSFB插件和QtGui層交互流程圖。如圖 2.3所示
圖 2.3 SylixOSFB交互流程
【SylixOS】Qt 基於FrameBuffer渲染界面