新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式Linux系統圖形及圖形用戶界面

        嵌入式Linux系統圖形及圖形用戶界面

        作者: 時間:2012-05-22 來源:網絡 收藏

        3.3 Qt/Embedded

        Qt/Embedded是著名的 Qt 庫開發商 TrollTech(http://www.trolltech.com/)發布的面向系統的 Qt 版本。因為 Qt 是 KDE 等項目使用的 GUI 支持庫,所以有許多基于 Qt 的 X Window 程序可以非常方便地移植到 Qt/Embedded 版本上。因此,自從 Qt/Embedded 以 GPL 條款形勢發布以來,就有大量的 Linux 開發商轉到了 Qt/Embedded 系統上。比如韓國的 Mizi 公司,臺灣省的某些 Linux 應用開發商等等。

        不過,在筆者看來,Qt/Embedded 還有一些問題值得開發者注意:

        1)目前,該系統采用兩種條款發布,其中包括 GPL 條款。對函數庫使用 GPL 條款,意味著其上的應用需要遵循 GPL 條款。當然了,如果要開發商業程序,TrollTech 也允許你采用另外一個授權條款,這時,就必須向 TrollTech 交納授權費用了。

        2)Qt/Embedded 是一個 C++ 函數庫,盡管 Qt/Embedded 聲稱可以裁剪到最少 630K,但這時的 Qt/Embedded 庫已經基本上失去了使用價值。低的程序效率、大的資源消耗也對運行 Qt/Embedded 的硬件提出了更高的要求。

        3)Qt/Embedded 庫目前主要針對手持式信息終端,因為對硬件加速支持的匱乏,很難應用到對圖形速度、功能和效率要求較高的嵌入式系統當中,比如機頂盒、游戲終端等等。

        4)Qt/Embedded 提供的控件集風格沿用了 PC 風格,并不太適合許多手持設備的操作要求。

        5)Qt/Embedded 的結構過于復雜,很難進行底層的擴充、定制和移植,尤其是那個用來實現 signal/slot 機制的著名的 moc 文件。

        因為上述這些原因,目前所見到的 Qt/Embedded 的運行環境,幾乎是清一色基于 StrongARM 的 iPAQ。

        3.4 MiniGUI

        MiniGUI是由筆者主持,并由許多自由軟件開發人員支持的一個自由軟件項目(遵循 LGPL 條款發布),其目標是為基于 Linux 的實時嵌入式系統提供一個輕量級的支持系統。該項目自 1998 年底開始到現在,已歷經 3 年多的開發過程。到目前為止,已經非常成熟和穩定。目前,我們已經正式發布了穩定版本 1.0.9,并且開始了新版本系列的開發,即 MiniGUI Version 1.1.x,該系列的正式版也即將發布。

        在 MiniGUI 幾年的發展過程中,有許多值得一提的技術創新點,正是由于這些技術上的創新,才使得 MiniGUI 更加適合實時嵌入式系統;而且 MiniGUI 的靈活性非常好,可以應用在包括手持設備、機頂盒、游戲終端等等在內的各種高端或者低端的嵌入式系統當中。這些技術創新包括:

        1)圖形抽象層。圖形抽象層對頂層 API 基本沒有影響,但大大方便了 MiniGUI 應用程序的移植、調試等工作。目前包含三個圖形引擎,SVGALib、LibGGI 以及直接基于 Linux FrameBuffer 的 Native Engine,利用 LibGGI 時,可在 X Window 上運行 MiniGUI 應用程序,并可非常方便地進行調試。與圖形抽象層相關的還有輸入事件的抽象層。MiniGUI 現在已經被證明能夠在基于 ARM、MIPS、StrongARM 以及 PowerPC 等的嵌入式系統上流暢運行。

        2)多字體和多字符集支持。這部分通過設備上下文(DC)的邏輯字體(LOGFONT)實現,不管是字體類型還是字符集,都可以非常方便地進行擴充。應用程序在啟動時,可切換系統字符集,比如 GB、BIG5、EUCKR、UJIS。利用 DrawText 等函數時,可通過指定字體而獲得其他字符集支持。對于一個窗口來說,同時顯示不同語種的文字是可能的。MiniGUI 的這種字符集支持不同于傳統通過 UNICODE 實現的多字符集支持,這種實現更加適合于嵌入式系統。

        3)兩個不同架構的版本。最初的 MiniGUI 運行在 PThread 庫之上,這個版本適合于功能單一的嵌入式系統,但存在系統健壯性不夠的缺點。在 0.9.98 版本中,我們引入了 MiniGUI-Lite 版本,這個版本在提高系統健壯性的同時,通過一系列創新途徑,避免了傳統 C/S 結構的弱點,為功能復雜的嵌入式系統提供了一個高效、穩定的 GUI 系統。

        在 MiniGUI 1.1.0 版本的開發中,我們參照 SDL 和 Allegro 的圖形部分,重新設計了圖形抽象層,并增強了圖形功能,同時增強了 MiniGUI-Lite 版本的某些特性。這些特性包括:

        1)MiniGUI-Lite 支持層的概念。同一層可容納多個能夠同時顯示的客戶程序,并平鋪在屏幕上顯示。

        2)新的 GAL 能夠支持硬件加速能力,并能夠充分使用顯示內存;新 GAL 之上的新 GDI 接口得到進一步增強。新的 GDI 接口可以支持 Alpha 混和、透明位塊傳輸、光柵操作、YUV覆蓋、Gamma 校正,以及高級圖形功能(橢圓、多邊形、樣條曲線)等等。

        MiniGUI 新版本在圖形方面的增強和提高,將大大擴展它的應用領域,希望能夠對嵌入式 Linux 上的多媒體應用、游戲開發提供支持。

        縱觀嵌入式 Linux 系統上的各種圖形系統方案,我們發現,許多圖形系統(如 Qt/Embedded 和 MicoroWindows),只注重手持設備上的需求,卻不太注重其他應用領域的需求,而其他許多需要圖形支持的嵌入式 Linux 系統卻需要許多獨特的、高級的圖形功能,而不僅僅是。為此,在接下來的開發中,我們還將在如下領域繼續開發 MiniGUI:

        1)提供運行在 MiniGUI 上的 JAVA 虛擬機 AWT 組件的實現。

        2)提供 MiniGUI 上的 OpenGL 實現。

        3)提供類 QT 控件集的 C++ 封裝。

        3)提供窗口/控件風格主題支持。

        4)在 MiniGUI-Lite 當中增加對矢量字體的支持。

        4 小結

        綜上所述,筆者認為在嵌入式 Linux 圖形領域,還有許多有待開發人員仔細研究和解決的問題。MiniGUI 的新的發展,也正源于對這些需求的認識之上。我們也衷心希望能夠有更多的自由軟件開發人員加盟 MiniGUI 的開發,一同開發新的嵌入式 Linux 的圖形系統。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        linux相關文章:linux教程



        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 榕江县| 哈巴河县| 麦盖提县| 祥云县| 鲁山县| 弥渡县| 白朗县| 安图县| 瓦房店市| 望都县| 高陵县| 白山市| 达日县| 余江县| 仁化县| 周至县| 武山县| 定兴县| 柘荣县| 杨浦区| 石狮市| 静安区| 台湾省| 崇州市| 华容县| 鹤壁市| 昌图县| 清水县| 永定县| 通渭县| 修武县| 刚察县| 于都县| 白水县| 怀安县| 乳山市| 芒康县| 法库县| 阳朔县| 壤塘县| 高尔夫|