第章圖形用戶接口ppt課件_第1頁
第章圖形用戶接口ppt課件_第2頁
第章圖形用戶接口ppt課件_第3頁
第章圖形用戶接口ppt課件_第4頁
第章圖形用戶接口ppt課件_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、2第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 主要內(nèi)容MiniGUI簡介簡介 MiniGUI在在Linux下運轉(zhuǎn)環(huán)境的建立下運轉(zhuǎn)環(huán)境的建立 Linux下下S3C2410 FrameBuffer的啟動的啟動 MiniGUI輸入引擎輸入引擎IAL的開發(fā)的開發(fā) 在在S3C2410上運轉(zhuǎn)簡單的繪圖程序上運轉(zhuǎn)簡單的繪圖程序 MiniGUI在在S3C2410上的移植上的移植 在在QVFB上的仿真運用上的仿真運用 3第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.1.1 MiniGUI 8.1.1 MiniGUI的功能特征的功能特征 MiniGUI是一種在

2、嵌入式系統(tǒng)中提供圖形及圖形用戶界是一種在嵌入式系統(tǒng)中提供圖形及圖形用戶界面支持的中間件技術(shù),是面向嵌入式系統(tǒng)的輕量級圖形用戶面支持的中間件技術(shù),是面向嵌入式系統(tǒng)的輕量級圖形用戶界面支持系統(tǒng),國內(nèi)著名的自在軟件工程之一。界面支持系統(tǒng),國內(nèi)著名的自在軟件工程之一。 功能特性功能特性 完備的多窗口機制和音訊傳送機制。完備的多窗口機制和音訊傳送機制。 常用的控件類,包括靜態(tài)文本框、按鈕、單行和多行編輯常用的控件類,包括靜態(tài)文本框、按鈕、單行和多行編輯框、列表框、組合框、進度條、屬性頁、工具欄、拖動條、樹框、列表框、組合框、進度條、屬性頁、工具欄、拖動條、樹型控件、月歷控件等。型控件、月歷控件等。 支持

3、對話框和音訊框以及其它支持對話框和音訊框以及其它GUIGUI元素,包括菜單、加速鍵元素,包括菜單、加速鍵、插入符、定時器等。、插入符、定時器等。 經(jīng)過兩種不同的內(nèi)部軟件構(gòu)造支持低端顯示設(shè)備比如單經(jīng)過兩種不同的內(nèi)部軟件構(gòu)造支持低端顯示設(shè)備比如單色色 LCD LCD和高端顯示設(shè)備比如彩色顯示器。前者小巧靈敏和高端顯示設(shè)備比如彩色顯示器。前者小巧靈敏,而后者在前者的根底上提供了更加強大的圖形功能。,而后者在前者的根底上提供了更加強大的圖形功能。 支持支持WindowsWindows的資源文件,如位圖、圖標、光標等。的資源文件,如位圖、圖標、光標等。 支持各種流行的圖像文件,包括支持各種流行的圖像文件

4、,包括JPEGJPEG、GIFGIF、PNGPNG、TGATGA、BMPBMP等等。等等。 支持多字符集和多字體。支持多字符集和多字體。 針對嵌入式系統(tǒng),支持普通性的針對嵌入式系統(tǒng),支持普通性的I/OI/O操作和文件操作等。操作和文件操作等。4第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.1.2 MiniGUI 8.1.2 MiniGUI 的技術(shù)優(yōu)勢的技術(shù)優(yōu)勢 和其它針對嵌入式產(chǎn)品的圖形系統(tǒng)相比,和其它針對嵌入式產(chǎn)品的圖形系統(tǒng)相比,MiniGUI具有如具有如下幾大技術(shù)優(yōu)勢:下幾大技術(shù)優(yōu)勢: 1占用資源少占用資源少 2高性能、高可靠性高性能、高可靠性 3可定制配置可定

5、制配置 4跨操作系統(tǒng)支持跨操作系統(tǒng)支持 5第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 主要內(nèi)容MiniGUI簡介簡介 MiniGUI在在Linux下運轉(zhuǎn)環(huán)境的建立下運轉(zhuǎn)環(huán)境的建立 Linux下下S3C2410 FrameBuffer的啟動的啟動 MiniGUI輸入引擎輸入引擎IAL的開發(fā)的開發(fā) 在在S3C2410上運轉(zhuǎn)簡單的繪圖程序上運轉(zhuǎn)簡單的繪圖程序 MiniGUI在在S3C2410上的移植上的移植 在在QVFB上的仿真運用上的仿真運用 6第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.2.1 MiniGUI 8.2.1 MiniGUI在在

6、LinuxLinux下的運轉(zhuǎn)環(huán)境下的運轉(zhuǎn)環(huán)境 在運轉(zhuǎn)在運轉(zhuǎn)Linux的的PC機上,機上,MiniGUI運用程序可以經(jīng)過以下兩種運用程序可以經(jīng)過以下兩種方式運轉(zhuǎn):方式運轉(zhuǎn):在在X Window上,在虛擬上,在虛擬FrameBuffer的的QVFB中運轉(zhuǎn);中運轉(zhuǎn);在在Linux的字符控制臺上,在的字符控制臺上,在Linux內(nèi)核提供的內(nèi)核提供的FrameBuffer驅(qū)動上運轉(zhuǎn)。驅(qū)動上運轉(zhuǎn)。QVFB FrameBuffer設(shè)備驅(qū)動設(shè)備驅(qū)動 QVFB是是QtQt是是Linux 窗口管理器窗口管理器KDE運用的底層函數(shù)庫運用的底層函數(shù)庫提供的一個虛擬的提供的一個虛擬的FrameBuffer工具。在工具。在

7、X Window環(huán)境下,環(huán)境下,進展基于進展基于QVFB之上的之上的MiniGUI模擬開發(fā)、調(diào)試是常用的開發(fā)模擬開發(fā)、調(diào)試是常用的開發(fā)調(diào)試手段。調(diào)試手段。 對于大部分兼容對于大部分兼容VESA規(guī)范顯卡的規(guī)范顯卡的PC機,運用機,運用RedHat內(nèi)核中包含的內(nèi)核中包含的VESA FrameBuffer驅(qū)動程序驅(qū)動程序就可以運轉(zhuǎn)就可以運轉(zhuǎn)MINIGUI了。假設(shè)本人編譯內(nèi)核,那么需了。假設(shè)本人編譯內(nèi)核,那么需求選中求選中FrameBuffer的支持。的支持。 7第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.2.2 8.2.2 安裝資源文件安裝資源文件 在在Linux環(huán)境下

8、,把該文件復制到環(huán)境下,把該文件復制到/opt/emulation目錄下目錄下(emulation目錄為創(chuàng)建的目錄目錄為創(chuàng)建的目錄)。執(zhí)行如下解緊縮命令:。執(zhí)行如下解緊縮命令:rootlocalhost emulation# tar zxvf minigui-res-1.3.3.tar.gz 該命令將建立該命令將建立minigui-res-1.3.3目錄,然后進入該目錄:目錄,然后進入該目錄:rootlocalhost emulation# cd minigui-res-1.3.3最后,經(jīng)過最后,經(jīng)過make install命令安裝資源文件:命令安裝資源文件:rootlocalhost min

9、igui-res-1.3.3# make install這樣,資源文件就安裝到這樣,資源文件就安裝到/usr/local/lib/minigui/res目錄。目錄。 8第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.2.3 8.2.3 配置安裝配置安裝MiniGUIMiniGUI庫文件庫文件 MiniGUI是以庫的方式提供應用戶的,經(jīng)過將是以庫的方式提供應用戶的,經(jīng)過將MiniGUI的庫文件編譯進運用程序來運用的庫文件編譯進運用程序來運用MiniGUI。步驟如下:。步驟如下: 1、下載緊縮的庫文件、下載緊縮的庫文件libminigui-1.3.3.tar.gz 2、解

10、緊縮、解緊縮 tar zxvf libminigui-1.3.3.tar.gz 3、配置圖形界面、配置圖形界面 make menuconfig4、安裝庫文件、安裝庫文件 make make install 9第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 主要內(nèi)容MiniGUI簡介簡介 MiniGUI在在Linux下運轉(zhuǎn)環(huán)境的建立下運轉(zhuǎn)環(huán)境的建立 Linux下下S3C2410 FrameBuffer的啟動的啟動 MiniGUI輸入引擎輸入引擎IAL的開發(fā)的開發(fā) 在在S3C2410上運轉(zhuǎn)簡單的繪圖程序上運轉(zhuǎn)簡單的繪圖程序 MiniGUI在在S3C2410上的移植上的移植 在

11、在QVFB上的仿真運用上的仿真運用 10第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI v 在在QVFBQVFB上運轉(zhuǎn)例如程序的步驟上運轉(zhuǎn)例如程序的步驟 mg-samples-1.3.1目錄下包含了目錄下包含了MiniGUI提供的多個例如提供的多個例如程序,經(jīng)過在程序,經(jīng)過在mg-samples-1.3.1目錄下依次執(zhí)行目錄下依次執(zhí)行./configure命命令和令和make命令,可以將這些例如程序編譯生成可執(zhí)行程序。命令,可以將這些例如程序編譯生成可執(zhí)行程序。 1按照如下配置,修正按照如下配置,修正/usr/local/etc目錄下的配置文件目錄下的配置文件MiniGU

12、I.cfg。systemgal_engine = fbcon改為改為gal_engine = qvfbial_engine = console改為改為ial_engine = qvfbqvfbdefaultmode = 320 x240-8bpp 2運用運用qvfb &命令啟動曾經(jīng)安裝的命令啟動曾經(jīng)安裝的qvfb,并在,并在File菜單菜單下配置下配置qvfb為為320 x240-8bpp方式。方式。 3運轉(zhuǎn)運轉(zhuǎn)/opt/emulation/mg-samples/src/目錄中的可執(zhí)目錄中的可執(zhí)行程序行程序 。11第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI v

13、 在在QVFBQVFB上運轉(zhuǎn)本人編寫的運用程序的步驟上運轉(zhuǎn)本人編寫的運用程序的步驟 假設(shè)文件名為假設(shè)文件名為demo.c,需求的步驟如下:,需求的步驟如下: 1進入進入mg-samples-1.3.1目錄,執(zhí)行目錄,執(zhí)行./configure ; 2把文件把文件demo.c復制到復制到/opt/emulation/mg-samples-1.3.1/src目錄下目錄下 ; 3翻開該目錄下的文件翻開該目錄下的文件Makefile.am:在在COMMON_PROGS = 的內(nèi)容末尾填加可執(zhí)行文件名的內(nèi)容末尾填加可執(zhí)行文件名demo。然后,在然后,在noinst_PROGRAMS=$(COMMON_P

14、ROGS) $(LITE_PROGS)下填加下填加demo_SOURCES = demo.c。 4在目錄在目錄/opt/emulation/ mg-samples-1.3.1/src下,執(zhí)下,執(zhí)行行make命令命令 ,生成可執(zhí)行文件,生成可執(zhí)行文件demo; 5修正修正/usr/local/etc目錄下目錄下MiniGUI的配置文件的配置文件MiniGUI.cfg 6在在/opt/emulation/ mg-samples-1.3.1/src目錄下執(zhí)行目錄下執(zhí)行qvfb &命令;命令; 7執(zhí)行執(zhí)行demo程序:程序: rootlocalhost src# ./demo 12第八章第八章

15、 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 主要內(nèi)容MiniGUI簡介簡介 MiniGUI在在Linux下運轉(zhuǎn)環(huán)境的建立下運轉(zhuǎn)環(huán)境的建立 Linux下下S3C2410 FrameBuffer的啟動的啟動 MiniGUI輸入引擎輸入引擎IAL的開發(fā)的開發(fā) 在在S3C2410上運轉(zhuǎn)簡單的繪圖程序上運轉(zhuǎn)簡單的繪圖程序 MiniGUI在在S3C2410上的移植上的移植 在在QVFB上的仿真運用上的仿真運用 13第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.4.1 FrameBuffer 8.4.1 FrameBuffer簡介簡介 FrameBuffer是出如今

16、是出如今linux 2.2.xx及以上內(nèi)核當及以上內(nèi)核當中的一種驅(qū)動程序接口。這種接口將顯示設(shè)備籠統(tǒng)為中的一種驅(qū)動程序接口。這種接口將顯示設(shè)備籠統(tǒng)為幀緩沖區(qū)。用戶可以將它看成是顯示內(nèi)存的一個映像幀緩沖區(qū)。用戶可以將它看成是顯示內(nèi)存的一個映像,將其映射到進程地址空間之后,就可以直接進展讀,將其映射到進程地址空間之后,就可以直接進展讀寫操作,寫操作可以立刻反映在屏幕上。該驅(qū)動程序?qū)懖僮?,寫操作可以立刻反映在屏幕上。該?qū)動程序的設(shè)備文件普通是的設(shè)備文件普通是/dev/fb0、/dev/fb1等等。等等。 在運用程序中,假想象運用在運用程序中,假想象運用FrameBuffer,普通需,普通需求把求把F

17、rameBuffer設(shè)備文件映射到進程地址空間。操設(shè)備文件映射到進程地址空間。操作方法是首先翻開作方法是首先翻開/dev/fb0設(shè)備,然后經(jīng)過設(shè)備,然后經(jīng)過mmap系系統(tǒng)調(diào)用進展地址映射,接下來就可以對統(tǒng)調(diào)用進展地址映射,接下來就可以對Framebuffer進展操作了。進展操作了。 14第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.4.2 FrameBuffer 8.4.2 FrameBuffer驅(qū)動的添加驅(qū)動的添加 將支持將支持S3C2410的的FrameBuffer驅(qū)動的源程序驅(qū)動的源程序S3C2410fb.c編譯進內(nèi)核。編譯進內(nèi)核。 為了保證編譯勝利,還需求對

18、如下相關(guān)文件進展修正:為了保證編譯勝利,還需求對如下相關(guān)文件進展修正:kernel/drivers/video/Config.in 這個文件包含許多與顯示相關(guān)的配置信息。這個文件包含許多與顯示相關(guān)的配置信息。 kernel/drivers/video/Makefile 在該文件中設(shè)置假設(shè)配置時選擇了在該文件中設(shè)置假設(shè)配置時選擇了CONFIG_FB_S3C2410,就,就會將會將S3C2410 FrameBuffer的驅(qū)動程序參與的驅(qū)動程序參與linux內(nèi)核。內(nèi)核。 kernel/drivers/video/fbmem.c 該文件的作用是通知內(nèi)核如何調(diào)用相應的該文件的作用是通知內(nèi)核如何調(diào)用相應的

19、FrameBuffer驅(qū)動。驅(qū)動。 15第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.4.3 FrameBuffer 8.4.3 FrameBuffer設(shè)備文件的添加設(shè)備文件的添加 Linux Linux要在嵌入式系統(tǒng)上運轉(zhuǎn),還需求文件系統(tǒng)的支持。要在嵌入式系統(tǒng)上運轉(zhuǎn),還需求文件系統(tǒng)的支持。運用程序?qū)\用程序?qū)rameBufferFrameBuffer驅(qū)動程序的運用是經(jīng)過設(shè)備文件來進驅(qū)動程序的運用是經(jīng)過設(shè)備文件來進展的。展的。 所以,必需在文件系統(tǒng)中創(chuàng)建所以,必需在文件系統(tǒng)中創(chuàng)建FrameBufferFrameBuffer相應的設(shè)備文相應的設(shè)備文件,才干讓運用程序

20、運用件,才干讓運用程序運用FrameBufferFrameBuffer驅(qū)動。驅(qū)動。 由于設(shè)備文件運用了設(shè)備文件系統(tǒng),因此,可以不用思索由于設(shè)備文件運用了設(shè)備文件系統(tǒng),因此,可以不用思索其主次設(shè)備號,只需求思索驅(qū)動程序調(diào)用的是設(shè)備其主次設(shè)備號,只需求思索驅(qū)動程序調(diào)用的是設(shè)備fb0fb0即可,即可,但又由于設(shè)備文件系統(tǒng)生成的設(shè)備文件為但又由于設(shè)備文件系統(tǒng)生成的設(shè)備文件為fb/0fb/0,所以需求在,所以需求在文件系統(tǒng)中做一個符號銜接,也就是當找到文件系統(tǒng)中做一個符號銜接,也就是當找到fb/0fb/0時,直接銜時,直接銜接到接到fb0fb0。要實現(xiàn)以上的符號銜接,只需求在文件系統(tǒng)的。要實現(xiàn)以上的符號

21、銜接,只需求在文件系統(tǒng)的/usr/etc/rc.local/usr/etc/rc.local文件中添加文件中添加 ln -s fb/0 fb0 ln -s fb/0 fb016第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.4.4 FrameBuffer 8.4.4 FrameBuffer測試程序編寫測試程序編寫 FrameBuffer FrameBuffer程序移植完成后,需求對其進展測試,確保程序移植完成后,需求對其進展測試,確保沒有問題后才干進展下一步?jīng)]有問題后才干進展下一步MiniGUIMiniGUI的移植。的移植。 測試程序的主要功能是:在文件系統(tǒng)中添加一個

22、運用程測試程序的主要功能是:在文件系統(tǒng)中添加一個運用程序,經(jīng)過系統(tǒng)調(diào)用翻開序,經(jīng)過系統(tǒng)調(diào)用翻開/dev/fb0/dev/fb0設(shè)備文件,顯示相應的信設(shè)備文件,顯示相應的信息,并向映射的緩存寫入顯示數(shù)據(jù),在息,并向映射的緩存寫入顯示數(shù)據(jù),在LCDLCD屏上顯示間隔相屏上顯示間隔相等的多種顏色條紋。等的多種顏色條紋。17第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 主要內(nèi)容MiniGUI簡介簡介 MiniGUI在在Linux下運轉(zhuǎn)環(huán)境的建立下運轉(zhuǎn)環(huán)境的建立 Linux下下S3C2410 FrameBuffer的啟動的啟動 MiniGUI輸入引擎輸入引擎IAL的開發(fā)的開發(fā) 在

23、在S3C2410上運轉(zhuǎn)簡單的繪圖程序上運轉(zhuǎn)簡單的繪圖程序 MiniGUI在在S3C2410上的移植上的移植 在在QVFB上的仿真運用上的仿真運用 18第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.5.1 8.5.1 安裝安裝MiniGUIMiniGUI的資源文件的資源文件 1、在、在PC機上對資源文件機上對資源文件minigui-res-1.3.3.tar.gz解緊縮;解緊縮; rootlocalhost target# tar zxvf minigui-res-1.3.3.tar.gz 2、進入、進入minigui-res-1.3.3目錄,安裝資源文件;目錄,安裝

24、資源文件;rootlocalhost minigui-res-1.3.3# make install 3、把、把/opt/target/minigui/usr/local/lib目錄下的目錄下的minigui目目錄拷貝到要制造的錄拷貝到要制造的cramfs文件系統(tǒng)的文件夾中。文件系統(tǒng)的文件夾中。 19第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.5.2 8.5.2 配置安裝配置安裝MiniGUIMiniGUI庫文件庫文件 1、確認安裝了交叉編譯器,即、確認安裝了交叉編譯器,即armv4l-unknown-linux系列系列的交叉編譯器;的交叉編譯器;2、改動目錄到、

25、改動目錄到/opt/target/libminigui-1.3.3下下,鍵入命令鍵入命令make menuconfig進展配置;進展配置; 3、安裝庫文件:、安裝庫文件: make make install 4、去除庫文件、去除庫文件libminigui-1.3.so.3.0.0和和libmgext-1.3.so.3.0.0中的調(diào)試信息和符號信息。中的調(diào)試信息和符號信息。 armv4l-unknown-linux-strip libminigui-1.3.so.3.0.0 20第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.5.3 MiniGUI 8.5.3 Mini

26、GUI的移植步驟的移植步驟 要將要將MiniGUIMiniGUI移植到移植到S3C2410S3C2410,通常需求按照如下步驟進展:,通常需求按照如下步驟進展:1 1把曾經(jīng)去除調(diào)試信息和符號信息的把曾經(jīng)去除調(diào)試信息和符號信息的MiniGUIMiniGUI庫文件庫文件libminigui-libminigui-1.3.so.3.0.01.3.so.3.0.0和和libmgext-1.3.so.3.0.0libmgext-1.3.so.3.0.0,以及它們的符號銜接文件,一同復制,以及它們的符號銜接文件,一同復制到要制形成到要制形成cramfscramfs文件系統(tǒng)的目錄文件系統(tǒng)的目錄root_te

27、chroot_tech中的中的/lib/lib下。下。2 2把把/opt/tgt/minigui/usr/local/lib/opt/tgt/minigui/usr/local/lib下的下的miniguiminigui目錄復制到要制造目錄復制到要制造cramfscramfs文件系統(tǒng)的目錄中。比如放到該目錄的文件系統(tǒng)的目錄中。比如放到該目錄的/usr/sbin/usr/sbin/下。當嵌入式系統(tǒng)運下。當嵌入式系統(tǒng)運轉(zhuǎn)時,運用程序在該轉(zhuǎn)時,運用程序在該miniguiminigui目錄下調(diào)用相關(guān)的資源文件。目錄下調(diào)用相關(guān)的資源文件。3 3在在root_techroot_tech文件夾內(nèi),運用如下命

28、令創(chuàng)建一個目錄:文件夾內(nèi),運用如下命令創(chuàng)建一個目錄:mkdir mkdir p /opt/host/armv4l/armv4l-unknown-linux/p /opt/host/armv4l/armv4l-unknown-linux/接下來,創(chuàng)建文件夾的符號銜接:接下來,創(chuàng)建文件夾的符號銜接:ln ln s /lib /opt/host/armv4l/armv4l-unknown-linux/libs /lib /opt/host/armv4l/armv4l-unknown-linux/lib4 4修正修正/opt/host/armv4l/armv4l-unknown-linux/etc/o

29、pt/host/armv4l/armv4l-unknown-linux/etc目錄下的目錄下的MiniGUI.cfgMiniGUI.cfg文件,把存放資源的途徑改為文件,把存放資源的途徑改為root_techroot_tech目錄下對應的途徑,從而使運用程序可目錄下對應的途徑,從而使運用程序可以找到它運用的資源文件。修正后的以找到它運用的資源文件。修正后的MiniGUI.cfgMiniGUI.cfg文件要放到文件要放到root_techroot_tech目錄的目錄的/mnt/etc/mnt/etc目錄下。目錄下。5 5最后,把預備好的最后,把預備好的root_techroot_tech文件夾,

30、利用文件夾,利用mkcramfsmkcramfs命令,生成命令,生成cramfscramfs文文件系統(tǒng)。生成的文件系統(tǒng),可以經(jīng)過件系統(tǒng)。生成的文件系統(tǒng),可以經(jīng)過imagewriteimagewrite命令,利用命令,利用NFSNFS網(wǎng)絡文件系統(tǒng)或網(wǎng)絡文件系統(tǒng)或U U盤下載到目的系統(tǒng)中。盤下載到目的系統(tǒng)中。 21第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 主要內(nèi)容MiniGUI簡介簡介 MiniGUI在在Linux下運轉(zhuǎn)環(huán)境的建立下運轉(zhuǎn)環(huán)境的建立 Linux下下S3C2410 FrameBuffer的啟動的啟動 MiniGUI輸入引擎輸入引擎IAL的開發(fā)的開發(fā) 在在S3

31、C2410上運轉(zhuǎn)簡單的繪圖程序上運轉(zhuǎn)簡單的繪圖程序 MiniGUI在在S3C2410上的移植上的移植 在在QVFB上的仿真運用上的仿真運用 22第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.6.1 IAL 8.6.1 IAL引擎簡介引擎簡介 MiniGUI引入了輸入籠統(tǒng)層引入了輸入籠統(tǒng)層( Graphics and Input Abstract Layer,即,即GAL和和IAL)的概念?;\統(tǒng)層的概念類似的概念。籠統(tǒng)層的概念類似于于Linux虛擬文件系統(tǒng)的概念。它定義了一組不依賴于任何虛擬文件系統(tǒng)的概念。它定義了一組不依賴于任何特殊硬件的籠統(tǒng)接口,一切頂層的輸入處置

32、都建立在籠統(tǒng)接特殊硬件的籠統(tǒng)接口,一切頂層的輸入處置都建立在籠統(tǒng)接口之上。由于實現(xiàn)這一輸入籠統(tǒng)接口的底層代碼是一種類似口之上。由于實現(xiàn)這一輸入籠統(tǒng)接口的底層代碼是一種類似于操作系統(tǒng)驅(qū)動程序的于操作系統(tǒng)驅(qū)動程序的“輸入引擎,所以它的設(shè)計實踐上輸入引擎,所以它的設(shè)計實踐上是一種面向?qū)ο蟮某绦驑?gòu)造。利用這種籠統(tǒng)接口,可以將是一種面向?qū)ο蟮某绦驑?gòu)造。利用這種籠統(tǒng)接口,可以將MiniGUI方便地移植到其它方便地移植到其它POSIX系統(tǒng)上。系統(tǒng)上。 普通嵌入式普通嵌入式Linux操作系統(tǒng)都具有操作系統(tǒng)都具有FrameBuffer的支持,的支持,所以針對特定嵌入式設(shè)備,只需求編寫輸入引擎所以針對特定嵌入式設(shè)

33、備,只需求編寫輸入引擎IAL即可。即可。 23第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.6.2 IAL 8.6.2 IAL引擎的開發(fā)引擎的開發(fā) 以以44鍵盤為例,引見鍵盤為例,引見IAL引擎的開發(fā)。引擎的開發(fā)。 F (轉(zhuǎn)轉(zhuǎn)換換) E (TAB) D (SPACE) C (CTL) B A 9 (左左) 8 (ALT) 7 6 (上上) 5 4 (下下) 3 (ESC) 2 1 (右右) 0 (回回車車) BOOL InitADSInput (INPUT* input, const char* mdev, const char* mtype)/只讀方式翻開鍵盤設(shè)備

34、只讀方式翻開鍵盤設(shè)備 kbd_fd = open (/dev/Kbd7279, O_RDONLY); 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 = keyboar

35、d_getstate; input-set_leds = NULL; input-wait_event = wait_event; mousex = 0; mousey = 0; return TRUE;24第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 主要內(nèi)容MiniGUI簡介簡介 MiniGUI在在Linux下運轉(zhuǎn)環(huán)境的建立下運轉(zhuǎn)環(huán)境的建立 Linux下下S3C2410 FrameBuffer的啟動的啟動 MiniGUI輸入引擎輸入引擎IAL的開發(fā)的開發(fā) 在在S3C2410上運轉(zhuǎn)簡單的繪圖程序上運轉(zhuǎn)簡單的繪圖程序 MiniGUI在在S3C2410上的移植上的移植 在在QVFB上的仿真運用上的仿真運用 25第八章第八章 圖形用戶接口圖形用戶接口MiniGUI MiniGUI 8.7.1 MiniGUI 8.7.1 MiniGUI的根本繪圖函數(shù)的根本繪圖函數(shù) void GUIAPI SetPixel(HDC hdc, int x, int y, gal_pixel c); /設(shè)定像素值設(shè)定像素值 void GUIAPI SetPixelRGB(HDC hdc, int x, int y, int r, int g, int b); /設(shè)定像素設(shè)定像素RGB值值 gal_p

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論