標籤:c style blog a http ext
***************************************************************************************************************************
EasyWave 時間:2014.06.07
類別:開源GUI系統-Microwindows簡介 聲明:轉載,請保留連結
注意:如有錯誤,歡迎指正。這些是我學習的日誌文章......
***************************************************************************************************************************
一:Microwindows簡介
Microwindows 是一個著名的開放式源碼嵌入式GUI 軟體,目的是把圖形視窗環境引入到運行Linux 的小型裝置和平台上。作為X Window 的替代品,Microwindows可以使用更少的RAM 和檔案儲存體空間(100K-600K)提供與X Window 相似的功能。Microwindows 允許設計者輕鬆加入各種顯示裝置、滑鼠、觸控螢幕和鍵盤等。Microwindows 的可移植性非常好,基本上用 C 語言實現,只有某些關鍵代碼使用了彙編以提高速度。Microwindows 支援ARM 晶片。儘管Microwindows 完全支援Linux,但是它內部的可移植結構是基於一個相對簡單的螢幕裝置介面,可在許多不同的RTOS 和裸機上運行。
Microwindows 的圖形引擎能夠運行在任何支援readpixel, writepixel,drawhorzline, drawvertline 和setpalette 的系統之上。在底層函數的支援之下,上層實現了位元影像,字型,游標以及顏色的支援。系統使用了最佳化的繪製函數,這樣當使用者在移動視窗時可以提供更好的響應。記憶體配置圖形繪製和移動的實現使得螢幕畫圖顯得很平滑,這點特別在顯示動畫、多邊形繪製、任意地區填充、剪下時有用。Microwindows 支援新的Linux 核心幀緩衝(FrameBuffer)結構,目前提供每像素1、2、4、8、16、24 和32 位的支援,另外還支援彩色顯示和灰階顯示,其中彩色顯示包括真彩色(每像素15、16 和32 位)和調色盤(每像素1, 2, 4 和 8 位)兩種模式。在彩色顯示模式下,所有的顏色用RGB 格式給出,系統再將它轉換成與之最相似的可顯示顏色,而在單色模式下中則是轉換成不同的灰階級。Microwindows支援視窗覆蓋和子視窗概念、完全的視窗和客戶區剪下、比例和固定字型,還提供了字型和位元影像檔案處理工具。Microwindows 採用分層設計方法。在最底層,螢幕,滑鼠/觸控螢幕以及鍵盤驅動程式提供了對物理裝置訪問的能力。在中介層,實現了一個可移植的圖形引擎,支援行繪製,地區填充,剪下以及顏色模型等。在上層,實現多種API 以適應不同的應用環境。
二:Microwindows案例
由於Microwindows採用了message的方式驅動UI的顯示,跟miniGUI和WIN32的早期的GUI的訊息機制是一樣的,因此,只要掌握了Microwindows,就基本上掌握了MiniGUI。下面是一個實際的GUI的執行個體圖片[摘自網路]
本版塊只打算分析開源的microwindows的架構,以及如何移植和應用的問題,並不打算分析國內開源的miniGUI。其原因是MINIGUI商業化是需要錢的,如下所示:
因此,並不打算深入分析miniGUI,只分析microwindows的架構!