




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第 8 章 圖形用戶(hù)接口MiniGUI,主要內(nèi)容,1,4,2,6,MiniGUI簡(jiǎn)介,MiniGUI在Linux下運(yùn)行環(huán)境的建立,Linux下S3C2410 FrameBuffer的啟動(dòng),MiniGUI輸入引擎IAL的開(kāi)發(fā),7,在S3C2410上運(yùn)行簡(jiǎn)單的繪圖程序,5,MiniGUI在S3C2410上的移植,3,在QVFB上的仿真應(yīng)用,8.1.1 MiniGUI的功能特色,MiniGUI是一種在嵌入式系統(tǒng)中提供圖形及圖形用戶(hù)界面支持的中間件技術(shù),是面向嵌入式系統(tǒng)的輕量級(jí)圖形用戶(hù)界面支持系統(tǒng),國(guó)內(nèi)著名的自由軟件項(xiàng)目之一。,功能特性,完備的多窗口機(jī)制和消息傳遞機(jī)制。 常用的控件類(lèi),包括靜態(tài)文本框、
2、按鈕、單行和多行編輯框、列表框、組合框、進(jìn)度條、屬性頁(yè)、工具欄、拖動(dòng)條、樹(shù)型控件、月歷控件等。 支持對(duì)話(huà)框和消息框以及其它GUI元素,包括菜單、加速鍵、插入符、定時(shí)器等。 通過(guò)兩種不同的內(nèi)部軟件結(jié)構(gòu)支持低端顯示設(shè)備(比如單色 LCD)和高端顯示設(shè)備(比如彩色顯示器)。前者小巧靈活,而后者在前者的基礎(chǔ)上提供了更加強(qiáng)大的圖形功能。 支持Windows的資源文件,如位圖、圖標(biāo)、光標(biāo)等。 支持各種流行的圖像文件,包括JPEG、GIF、PNG、TGA、BMP等等。 支持多字符集和多字體。 針對(duì)嵌入式系統(tǒng),支持一般性的I/O操作和文件操作等。,8.1.2 MiniGUI 的技術(shù)優(yōu)勢(shì),和其它針對(duì)嵌入式產(chǎn)品的
3、圖形系統(tǒng)相比,MiniGUI具有如下幾大技術(shù)優(yōu)勢(shì): 1占用資源少 2高性能、高可靠性 3可定制配置 4跨操作系統(tǒng)支持,主要內(nèi)容,1,4,2,6,MiniGUI簡(jiǎn)介,MiniGUI在Linux下運(yùn)行環(huán)境的建立,Linux下S3C2410 FrameBuffer的啟動(dòng),MiniGUI輸入引擎IAL的開(kāi)發(fā),7,在S3C2410上運(yùn)行簡(jiǎn)單的繪圖程序,5,MiniGUI在S3C2410上的移植,3,在QVFB上的仿真應(yīng)用,8.2.1 MiniGUI在Linux下的運(yùn)行環(huán)境,在運(yùn)行Linux的PC機(jī)上,MiniGUI應(yīng)用程序可以通過(guò)以下兩種方式運(yùn)行:,在X Window上,在虛擬FrameBuffer的Q
4、VFB中運(yùn)行; 在Linux的字符控制臺(tái)上,在Linux內(nèi)核提供的FrameBuffer驅(qū)動(dòng)上運(yùn)行。,QVFB,FrameBuffer設(shè)備驅(qū)動(dòng),QVFB是Qt(Qt是Linux 窗口管理器KDE使用的底層函數(shù)庫(kù))提供的一個(gè)虛擬的FrameBuffer工具。在X Window環(huán)境下,進(jìn)行基于QVFB之上的MiniGUI模擬開(kāi)發(fā)、調(diào)試是常用的開(kāi)發(fā)調(diào)試手段。,對(duì)于大部分兼容VESA標(biāo)準(zhǔn)顯卡的PC機(jī),使用RedHat內(nèi)核中包含的VESA FrameBuffer驅(qū)動(dòng)程序就可以運(yùn)行MINIGUI了。如果自己編譯內(nèi)核,則需要選中FrameBuffer的支持。,8.2.2 安裝資源文件,在Linux環(huán)境下,把
5、該文件復(fù)制到/opt/emulation目錄下(emulation目錄為創(chuàng)建的目錄)。執(zhí)行如下解壓縮命令: rootlocalhost emulation# tar zxvf minigui-res-1.3.3.tar.gz 該命令將建立minigui-res-1.3.3目錄,然后進(jìn)入該目錄: rootlocalhost emulation# cd minigui-res-1.3.3 最后,通過(guò)make install命令安裝資源文件: rootlocalhost minigui-res-1.3.3# make install 這樣,資源文件就安裝到/usr/local/lib/minigui
6、/res目錄。,8.2.3 配置安裝MiniGUI庫(kù)文件,MiniGUI是以庫(kù)的形式提供給用戶(hù)的,通過(guò)將MiniGUI的庫(kù)文件編譯進(jìn)應(yīng)用程序來(lái)使用MiniGUI。步驟如下:,1、下載壓縮的庫(kù)文件libminigui-1.3.3.tar.gz 2、解壓縮 tar zxvf libminigui-1.3.3.tar.gz 3、配置圖形界面 make menuconfig 4、安裝庫(kù)文件 make make install,主要內(nèi)容,1,4,2,6,MiniGUI簡(jiǎn)介,MiniGUI在Linux下運(yùn)行環(huán)境的建立,Linux下S3C2410 FrameBuffer的啟動(dòng),MiniGUI輸入引擎IAL的
7、開(kāi)發(fā),7,在S3C2410上運(yùn)行簡(jiǎn)單的繪圖程序,5,MiniGUI在S3C2410上的移植,3,在QVFB上的仿真應(yīng)用,在QVFB上運(yùn)行示例程序的步驟,mg-samples-1.3.1目錄下包含了MiniGUI提供的多個(gè)示例程序,通過(guò)在mg-samples-1.3.1目錄下依次執(zhí)行./configure命令和make命令,可以將這些示例程序編譯生成可執(zhí)行程序。,1按照如下配置,修改/usr/local/etc目錄下的配置文件MiniGUI.cfg。 system gal_engine = fbcon改為gal_engine = qvfb ial_engine = console改為ial_en
8、gine = qvfb qvfb defaultmode = 320 x240-8bpp 2使用qvfb if ( kbd_fd update_mouse = mouse_update; input-get_mouse_xy = mouse_getxy; input-set_mouse_xy = NULL; input-get_mouse_button = mouse_getbutton; input-set_mouse_range = NULL; input-update_keyboard = keyboard_update; input-get_keyboard_state = keybo
9、ard_getstate; input-set_leds = NULL; input-wait_event = wait_event; mousex = 0; mousey = 0; return TRUE; ,主要內(nèi)容,1,4,2,6,MiniGUI簡(jiǎn)介,MiniGUI在Linux下運(yùn)行環(huán)境的建立,Linux下S3C2410 FrameBuffer的啟動(dòng),MiniGUI輸入引擎IAL的開(kāi)發(fā),7,在S3C2410上運(yùn)行簡(jiǎn)單的繪圖程序,5,MiniGUI在S3C2410上的移植,3,在QVFB上的仿真應(yīng)用,8.7.1 MiniGUI的基本繪圖函數(shù),void GUIAPI SetPixel(HDC
10、 hdc, int x, int y, gal_pixel c); /設(shè)定像素值 void GUIAPI SetPixelRGB(HDC hdc, int x, int y, int r, int g, int b); /設(shè)定像素RGB值 gal_pixel GUIAPI GetPixel(HDC hdc, int x, int y); /得到像素的坐標(biāo) void GUIAPI GetPixelRGB(HDC hdc,int x,int y,int* r, int* g, int* b); /得到像素的RGB值 void GUIAPI LineTo(HDC hdc, int x, int y)
11、; /畫(huà)線(xiàn)到該點(diǎn) void GUIAPI MoveTo(HDC hdc, int x, int y); /設(shè)起點(diǎn) void GUIAPI Circle(HDC hdc, int x, int y, int r); /畫(huà)圓 void GUIAPI Rectangle(HDC hdc, int x0, int y0, int x1, int y1); /畫(huà)矩形區(qū)域 void GUIAPI FillBox(HDC hdc, int x0, int y0, int x1, int y1); /填充矩形區(qū)域,8.7.2 繪圖程序舉例,static void DrawDemo (HWND hwnd, HD
12、C hdc) int x = DEFAULT_X, y= DEFAULT_Y; int tox = DEFAULT_WIDTH, toy = DEFAULT_WIDTH; int count; unsigned int nr_colors = GetGDCapability (hdc, GDCAP_COLORNUM); /設(shè)置畫(huà)筆為綠色,并畫(huà)一條綠色對(duì)角線(xiàn) SetPenColor (hdc, PIXEL_green); MoveTo (hdc, 0, 0); LineTo (hdc, 320, 240); /設(shè)置畫(huà)筆為綠色,畫(huà)一圓,坐標(biāo)為(150,140),半徑為50 SetPenColor (hdc, PIXEL_green); Circle(hdc, 150, 140, 50); /設(shè)置畫(huà)筆為青色,畫(huà)矩形,中心坐標(biāo)為(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- “JUZI漢語(yǔ)”軟件在HSK詞匯教學(xué)中的應(yīng)用研究
- JS銀行ESG管理體系優(yōu)化研究
- 讀后續(xù)寫(xiě)教學(xué)中高中英語(yǔ)教師的教學(xué)信念對(duì)其教學(xué)行為影響的個(gè)案研究
- 玩具設(shè)計(jì)核心要素與創(chuàng)新實(shí)踐
- 孩子作業(yè)書(shū)寫(xiě)培訓(xùn)
- 電信網(wǎng)絡(luò)安全班會(huì)
- 腦動(dòng)靜脈畸形MRI診斷
- 頤和園英文課件
- 三減三健健康知識(shí)教育
- 心內(nèi)科胸悶氣促的護(hù)理診斷
- DB11-T 1192-2025 工作場(chǎng)所防暑降溫技術(shù)規(guī)范
- 2025年社區(qū)工作者招聘考試(公共基礎(chǔ)知識(shí))經(jīng)典試題及答案
- 2025年精益生產(chǎn)管理考試試題及答案
- 歷年造價(jià)員考試試題及答案
- 小學(xué)美術(shù)大單元教學(xué)設(shè)計(jì)與實(shí)施研究
- 山地生態(tài)治理修復(fù)項(xiàng)目可行性研究報(bào)告
- 2025廣西公需科目真題續(xù)集(附答案)
- 2025年 浙江“三支一扶”招募筆試考試試卷附答案
- 《個(gè)人信息保護(hù)法》考試參考試題庫(kù)100題(含答案)
- (正式版)SH∕T 3548-2024 石油化工涂料防腐蝕工程施工及驗(yàn)收規(guī)范
- 特許經(jīng)營(yíng)管理手冊(cè)范本(餐飲)
評(píng)論
0/150
提交評(píng)論