第6章 嵌入式linux圖形用戶接口(miniGUI)_第1頁(yè)
第6章 嵌入式linux圖形用戶接口(miniGUI)_第2頁(yè)
第6章 嵌入式linux圖形用戶接口(miniGUI)_第3頁(yè)
第6章 嵌入式linux圖形用戶接口(miniGUI)_第4頁(yè)
第6章 嵌入式linux圖形用戶接口(miniGUI)_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第6章

(第二部分)

圖形用戶接口——MiniGUI主要內(nèi)容1426MiniGUI簡(jiǎn)介MiniGUI在Linux下運(yùn)行環(huán)境的建立Linux下S3C2410FrameBuffer的啟動(dòng)MiniGUI輸入引擎IAL的開發(fā)7在S3C2410上運(yùn)行簡(jiǎn)單的繪圖程序5MiniGUI在S3C2410上的移植3在QVFB上的仿真應(yīng)用MiniGUI簡(jiǎn)介

MiniGUI是一種在嵌入式系統(tǒng)中提供圖形及圖形用戶界面支持的中間件技術(shù),是面向嵌入式系統(tǒng)的輕量級(jí)圖形用戶界面支持系統(tǒng),國(guó)內(nèi)著名的自由軟件項(xiàng)目之一。MiniGUI是一個(gè)自由軟件項(xiàng)目。其目標(biāo)是提供一個(gè)快速、穩(wěn)定、跨操作系統(tǒng)的圖形用戶界面(GUI)支持系統(tǒng),尤其是基于Linux/uClinux、eCos以及其他傳統(tǒng)RTOS(如VxWorks、ThreadX、uC/OS-II、Nucleus

等)的實(shí)時(shí)嵌入式操作系統(tǒng)。MiniGUI的演進(jìn)1998年12月,飛漫軟件創(chuàng)始人魏永明開始開發(fā)MiniGUI,并遵循GPL(GNUGeneralPublicLicense)發(fā)布MiniGUI。2002年9月,MiniGUI的核心開發(fā)者組件了北京飛漫軟件技術(shù)有限公司(飛漫軟件),并開始嘗試MiniGUI的商業(yè)化經(jīng)營(yíng)?,F(xiàn)在,飛漫軟件仍然以自由軟件項(xiàng)目形式維護(hù)和發(fā)展MiniGUI2008年10月,飛漫軟件發(fā)布MiniGUI3.0版網(wǎng)址:應(yīng)用領(lǐng)域電信(手機(jī)、多媒體設(shè)備、IPTV)工業(yè)儀表醫(yī)療儀器軍工等。功能特性完備的多窗口機(jī)制和消息傳遞機(jī)制。常用的控件類,包括靜態(tài)文本框、按鈕、單行和多行編輯框、列表框、組合框、進(jìn)度條、屬性頁(yè)、工具欄、拖動(dòng)條、樹型控件、月歷控件等。支持對(duì)話框和消息框以及其它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操作和文件操作等。MiniGUI

的技術(shù)優(yōu)勢(shì)和其它針對(duì)嵌入式產(chǎn)品的圖形系統(tǒng)相比,MiniGUI具有如下幾大技術(shù)優(yōu)勢(shì):1.占用資源少2.高性能、高可靠性3.可定制配置4.跨操作系統(tǒng)支持硬件支持理論上講,MiniGUI的運(yùn)行和具體的硬件平臺(tái)無(wú)關(guān);只要某個(gè)硬件平臺(tái)上運(yùn)行有MiniGUI

所支持的某個(gè)操作系統(tǒng),MiniGUI就能在這個(gè)平臺(tái)上運(yùn)行。在業(yè)界使用的眾多硬件平臺(tái)中,其中已驗(yàn)證可運(yùn)行MiniGUI

的硬件平臺(tái)包括Intelx86、ARM、PowerPC、MIPS、DragonBall、ColdFire等。對(duì)系統(tǒng)資源的占用情況MiniGUI

本身的占用空間非常小,以嵌入式Linux操作系統(tǒng)為例,MiniGUI的典型存儲(chǔ)空間占用情況如下:Linux內(nèi)核:300KB~500KB(由系統(tǒng)需求決定);文件系統(tǒng):500KB~2MB(由系統(tǒng)需求決定);MiniGUI

支持庫(kù):500KB~900KB(由編譯選項(xiàng)確定);MiniGUI

字體、位圖等資源:典型400KB(由應(yīng)用程序需求確定,最低可在200KB以內(nèi));應(yīng)用程序:100KB~2MB(由具體的應(yīng)用需求確定)??傮w的系統(tǒng)占有空間在2MB到4MB左右。在某些系統(tǒng)上,尤其是在傳統(tǒng)嵌入式操作系統(tǒng)中,功能完備的MiniGUI

系統(tǒng)本身所占用的空間可進(jìn)一步縮小到1MB以內(nèi)。MiniGUI的軟件架構(gòu)MiniGUI

運(yùn)行模式

MiniGUI-Threads。運(yùn)行在MiniGUI-Threads上的程序可以在不同的線程中建立多個(gè)窗口,但所有的窗口在一個(gè)進(jìn)程或者地址空間中運(yùn)行。主要用來(lái)支持大多數(shù)傳統(tǒng)意義上的嵌入式操作系統(tǒng),比如VxWorks、ThreadX、Nucleus、OSE、pSOS、uC/OS-II、eCos等等。在Linux和uClinux上也能運(yùn)行。MiniGUI-Processes。每個(gè)程序是單獨(dú)的進(jìn)程,每個(gè)進(jìn)程也可以建立多個(gè)窗口,并且實(shí)現(xiàn)了多進(jìn)程窗口系統(tǒng)。MiniGUI-Processes適合于具有完整UNIX特性的嵌入式操作系統(tǒng),比如嵌入式Linux。該運(yùn)行模式在MiniGUIV2.0.x中提供,在MiniGUIV3.0中得到進(jìn)一步增強(qiáng)。

各操作系統(tǒng)上可運(yùn)行的MiniGUI

運(yùn)行模式

表4.1MiniGUI

在操作系統(tǒng)上的運(yùn)行模式操作系統(tǒng)

MiniGUI版本

所支持的運(yùn)行模式

LinuxMiniGUIV3.0.xMiniGUI-Processes

MiniGUI-Threads

MiniGUI-StandaloneLinuxMiniGUIV2.0.xMiniGUI-Processes

MiniGUI-Threads

MiniGUI-StandaloneuClinuxMiniGUIV1.6.xMiniGUI-Threads

MiniGUI-StandaloneVxWorks6.xMiniGUIV1.6.xMiniGUI-ThreadsThreadX

MiniGUIV1.6.xMiniGUI-ThreadsNucleusMiniGUIV1.6.xMiniGUI-ThreadsOSEMiniGUIV1.6.xMiniGUI-ThreadseCosMiniGUIV1.6.xMiniGUI-ThreadsuC/OS-IIMiniGUIV1.6.xMiniGUI-ThreadspSOSMiniGUIV1.6.x

MiniGUI-ThreadsMiniGUI-Threads運(yùn)行模式的消息通訊機(jī)制MiniGUI

運(yùn)行模式

MiniGUI-Standalone。MiniGUI可以以獨(dú)立任務(wù)的方式運(yùn)行,既不需要多線程也不需要多進(jìn)程的支持,這種運(yùn)行模式適合功能單一的應(yīng)用場(chǎng)合。比如在一些使用uClinux的嵌入式產(chǎn)品中,因?yàn)楦鞣N原因而缺少線程支持,這時(shí),就可以使用MiniGUI-Standalone來(lái)開發(fā)應(yīng)用軟件??傊篗iniGUI-Standalone模式的適應(yīng)面最廣,可以支持幾乎所有的操作系統(tǒng);MiniGUI-Threads模式的適用面次之;MiniGUI-Processes支持Linux。MiniGUI目前的開發(fā)方式基于MiniGUI

的開發(fā)可以在Linux或Windows操作系統(tǒng)下進(jìn)行。由于MiniGUI

完全用C來(lái)編寫,具有非常好的移植性,也使得MiniGUI

應(yīng)用程序的交叉編譯工作十分方便。為嵌入式設(shè)備編寫的應(yīng)用程序可以在任何安裝在針對(duì)該設(shè)備的交叉編譯工具鏈的平臺(tái)上進(jìn)行編譯。最常見的方式是在Linux環(huán)境下安裝gcc的交叉編譯器,對(duì)應(yīng)用程序進(jìn)行編譯。對(duì)于某些嵌入式系統(tǒng)(如VxWorks,uC/OS-II),則一般在Windows下安裝相應(yīng)的編譯環(huán)境(如Tornado、ADS等),對(duì)應(yīng)用程序進(jìn)行編譯。如果MiniGUI

應(yīng)用程序在Linux環(huán)境下開發(fā),它可以有兩種運(yùn)行方式。一種是直接在內(nèi)核支持的FrameBuffer控制臺(tái)下運(yùn)行,一種則是在一個(gè)模擬FrameBuffer?

的X11應(yīng)用程序(qvfb)下運(yùn)行并完成調(diào)試。如果MiniGUI

應(yīng)用程序在Windows下開發(fā),則可以使用VisualStudio集成開發(fā)環(huán)境進(jìn)行開發(fā)及編譯,并在模擬FrameBuffer?

的Windows應(yīng)用程序(wvfb)下運(yùn)行應(yīng)用程序并調(diào)試(如圖5.1所示)。主要內(nèi)容1426MiniGUI簡(jiǎn)介MiniGUI在Linux下運(yùn)行環(huán)境的建立Linux下S3C2410FrameBuffer的啟動(dòng)MiniGUI輸入引擎IAL的開發(fā)7在S3C2410上運(yùn)行簡(jiǎn)單的繪圖程序5MiniGUI在S3C2410上的移植3在QVFB上的仿真應(yīng)用6.2.1MiniGUI在Linux下的運(yùn)行環(huán)境在運(yùn)行Linux的PC機(jī)上,MiniGUI應(yīng)用程序可以通過(guò)以下兩種方式運(yùn)行:在XWindow上,在虛擬FrameBuffer的QVFB中運(yùn)行;在Linux的字符控制臺(tái)上,在Linux內(nèi)核提供的FrameBuffer驅(qū)動(dòng)上運(yùn)行。QVFBFrameBuffer設(shè)備驅(qū)動(dòng)QVFB是Qt(Qt是Linux窗口管理器KDE使用的底層函數(shù)庫(kù))提供的一個(gè)虛擬的FrameBuffer工具。在XWindow環(huán)境下,進(jìn)行基于QVFB之上的MiniGUI模擬開發(fā)、調(diào)試是常用的開發(fā)調(diào)試手段。對(duì)于大部分兼容VESA標(biāo)準(zhǔn)顯卡的PC機(jī),使用RedHat內(nèi)核中包含的VESAFrameBuffer驅(qū)動(dòng)程序就可以運(yùn)行MINIGUI了。如果自己編譯內(nèi)核,則需要選中FrameBuffer的支持。

6.2.2安裝資源文件在Linux環(huán)境下,把該文件復(fù)制到/opt/emulation目錄下(emulation目錄為創(chuàng)建的目錄)。執(zhí)行如下解壓縮命令:[root@localhostemulation]#tarzxvfminigui-res-1.3.3.tar.gz該命令將建立minigui-res-1.3.3目錄,然后進(jìn)入該目錄:[root@localhostemulation]#

cdminigui-res-1.3.3最后,通過(guò)makeinstall命令安裝資源文件:[root@localhostminigui-res-1.3.3]#makeinstall這樣,資源文件就安裝到/usr/local/lib/minigui/res目錄。

6.2.3配置安裝MiniGUI庫(kù)文件MiniGUI是以庫(kù)的形式提供給用戶的,通過(guò)將MiniGUI的庫(kù)文件編譯進(jìn)應(yīng)用程序來(lái)使用MiniGUI。步驟如下:1、下載壓縮的庫(kù)文件libminigui-1.3.3.tar.gz2、解壓縮

tarzxvflibminigui-1.3.3.tar.gz

3、配置圖形界面

makemenuconfig4、安裝庫(kù)文件makemakeinstall

主要內(nèi)容1426MiniGUI簡(jiǎn)介MiniGUI在Linux下運(yùn)行環(huán)境的建立Linux下S3C2410FrameBuffer的啟動(dòng)MiniGUI輸入引擎IAL的開發(fā)7在S3C2410上運(yùn)行簡(jiǎn)單的繪圖程序5MiniGUI在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=qvfbial_engine=console改為ial_engine=qvfb[qvfb]defaultmode=320x240-8bpp

2.使用qvfb&命令啟動(dòng)已經(jīng)安裝的qvfb,并在File菜單下配置qvfb為320x240-8bpp模式。3.運(yùn)行/opt/emulation/mg-samples/src/目錄中的可執(zhí)行程序。在QVFB上運(yùn)行自己編寫的應(yīng)用程序的步驟

假設(shè)文件名為demo.c,需要的步驟如下:1.進(jìn)入mg-samples-1.3.1目錄,執(zhí)行./configure;

2.把文件demo.c復(fù)制到/opt/emulation/mg-samples-1.3.1/src目錄下;3.打開該目錄下的文件Makefile.am:在COMMON_PROGS=的內(nèi)容末尾填加可執(zhí)行文件名demo。然后,在noinst_PROGRAMS=$(COMMON_PROGS)$(LITE_PROGS)下填加demo_SOURCES=demo.c。4.在目錄/opt/emulation/mg-samples-1.3.1/src下,執(zhí)行make命令,生成可執(zhí)行文件demo;

5.修改/usr/local/etc目錄下MiniGUI的配置文件MiniGUI.cfg6.在/opt/emulation/mg-samples-1.3.1/src目錄下執(zhí)行qvfb&命令;7.執(zhí)行demo程序:[root@localhostsrc]#./demo主要內(nèi)容1426MiniGUI簡(jiǎn)介MiniGUI在Linux下運(yùn)行環(huán)境的建立Linux下S3C2410FrameBuffer的啟動(dòng)MiniGUI輸入引擎IAL的開發(fā)7在S3C2410上運(yùn)行簡(jiǎn)單的繪圖程序5MiniGUI在S3C2410上的移植3在QVFB上的仿真應(yīng)用

6.4.1FrameBuffer簡(jiǎn)介

FrameBuffer是出現(xiàn)在linux2.2.xx及以上內(nèi)核當(dāng)中的一種驅(qū)動(dòng)程序接口。這種接口將顯示設(shè)備抽象為幀緩沖區(qū)。用戶可以將它看成是顯示內(nèi)存的一個(gè)映像,將其映射到進(jìn)程地址空間之后,就可以直接進(jìn)行讀寫操作,寫操作可以立即反映在屏幕上。該驅(qū)動(dòng)程序的設(shè)備文件一般是/dev/fb0、/dev/fb1等等。在應(yīng)用程序中,若想使用FrameBuffer,一般需要把FrameBuffer設(shè)備文件映射到進(jìn)程地址空間。操作方法是首先打開/dev/fb0設(shè)備,然后通過(guò)mmap系統(tǒng)調(diào)用進(jìn)行地址映射,接下來(lái)就可以對(duì)Framebuffer進(jìn)行操作了。

6.4.2FrameBuffer驅(qū)動(dòng)的添加將支持S3C2410的FrameBuffer驅(qū)動(dòng)的源程序S3C2410fb.c編譯進(jìn)內(nèi)核。為了保證編譯成功,還需要對(duì)如下相關(guān)文件進(jìn)行修改:kernel/drivers/video/Config.in這個(gè)文件包含許多與顯示相關(guān)的配置信息。

kernel/drivers/video/Makefile在該文件中設(shè)置如果配置時(shí)選擇了CONFIG_FB_S3C2410,就會(huì)將S3C2410FrameBuffer的驅(qū)動(dòng)程序加入linux內(nèi)核。

kernel/drivers/video/fbmem.c該文件的作用是告訴內(nèi)核如何調(diào)用相應(yīng)的FrameBuffer驅(qū)動(dòng)。

6.4.3FrameBuffer設(shè)備文件的添加Linux要在嵌入式系統(tǒng)上運(yùn)行,還需要文件系統(tǒng)的支持。應(yīng)用程序?qū)rameBuffer驅(qū)動(dòng)程序的使用是通過(guò)設(shè)備文件來(lái)進(jìn)行的。所以,必須在文件系統(tǒng)中創(chuàng)建FrameBuffer相應(yīng)的設(shè)備文件,才能讓應(yīng)用程序使用FrameBuffer驅(qū)動(dòng)。由于設(shè)備文件使用了設(shè)備文件系統(tǒng),因此,可以不必考慮其主次設(shè)備號(hào),只需要考慮驅(qū)動(dòng)程序調(diào)用的是設(shè)備fb0即可,但又因?yàn)樵O(shè)備文件系統(tǒng)生成的設(shè)備文件為fb/0,所以需要在文件系統(tǒng)中做一個(gè)符號(hào)連接,也就是當(dāng)找到fb/0時(shí),直接連接到fb0。要實(shí)現(xiàn)以上的符號(hào)連接,只需要在文件系統(tǒng)的/usr/etc/rc.local文件中添加

ln-sfb/0fb0

6.4.4FrameBuffer測(cè)試程序編寫

FrameBuffer程序移植完成后,需要對(duì)其進(jìn)行測(cè)試,確保沒有問(wèn)題后才能進(jìn)行下一步MiniGUI的移植。測(cè)試程序的主要功能是:在文件系統(tǒng)中添加一個(gè)應(yīng)用程序,通過(guò)系統(tǒng)調(diào)用打開/dev/fb0設(shè)備文件,顯示相應(yīng)的信息,并向映射的緩存寫入顯示數(shù)據(jù),在LCD屏上顯示間隔相等的多種顏色條紋。主要內(nèi)容1426MiniGUI簡(jiǎn)介MiniGUI在Linux下運(yùn)行環(huán)境的建立Linux下S3C2410FrameBuffer的啟動(dòng)MiniGUI輸入引擎IAL的開發(fā)7在S3C2410上運(yùn)行簡(jiǎn)單的繪圖程序5MiniGUI在S3C2410上的移植3在QVFB上的仿真應(yīng)用

6.5.1安裝MiniGUI的資源文件1、在PC機(jī)上對(duì)資源文件minigui-res-1.3.3.tar.gz解壓縮;

[root@localhosttarget]#tarzxvfminigui-res-1.3.3.tar.gz2、進(jìn)入minigui-res-1.3.3目錄,安裝資源文件;[root@localhostminigui-res-1.3.3]#makeinstall

3、把/opt/target/minigui/usr/local/lib目錄下的minigui目錄拷貝到要制作的cramfs文件系統(tǒng)的文件夾中。

6.5.2配置安裝MiniGUI庫(kù)文件1、確認(rèn)安裝了交叉編譯器,即armv4l-unknown-linux系列的交叉編譯器;2、改變目錄到/opt/target/libminigui-1.3.3下,鍵入命令makemenuconfig進(jìn)行配置;3、安裝庫(kù)文件:

makemakeinstall

4、去除庫(kù)文件libminigui-1.3.so.3.0.0和libmgext-1.3.so.3.0.0中的調(diào)試信息和符號(hào)信息。armv4l-unknown-linux-striplibminigui-1.3.so.3.0.0

6.5.3MiniGUI的移植步驟要將MiniGUI移植到S3C2410,通常需要按照如下步驟進(jìn)行:1.把已經(jīng)去除調(diào)試信息和符號(hào)信息的MiniGUI庫(kù)文件libminigui-1.3.so.3.0.0和libmgext-1.3.so.3.0.0,以及它們的符號(hào)連接文件,一同復(fù)制到要制作成cramfs文件系統(tǒng)的目錄root_tech中的/lib下。2.把/opt/tgt/minigui/usr/local/lib下的minigui目錄復(fù)制到要制作cramfs文件系統(tǒng)的目錄中。比如放到該目錄的/usr/sbin/下。當(dāng)嵌入式系統(tǒng)運(yùn)行時(shí),應(yīng)用程序在該minigui目錄下調(diào)用相關(guān)的資源文件。3.在root_tech文件夾內(nèi),使用如下命令創(chuàng)建一個(gè)目錄:mkdir–p/opt/host/armv4l/armv4l-unknown-linux/接下來(lái),創(chuàng)建文件夾的符號(hào)連接:ln–s/lib/opt/host/armv4l/armv4l-unknown-linux/lib4.修改/opt/host/armv4l/armv4l-unknown-linux/etc目錄下的MiniGUI.cfg文件,把存放資源的路徑改為root_tech目錄下對(duì)應(yīng)的路徑,從而使應(yīng)用程序能夠找到它使用的資源文件。修改后的MiniGUI.cfg文件要放到root_tech目錄的/mnt/etc目錄下。5.最后,把準(zhǔn)備好的root_tech文件夾,利用mkcramfs命令,生成cramfs文件系統(tǒng)。生成的文件系統(tǒng),可以通過(guò)imagewrite命令,利用NFS網(wǎng)絡(luò)文件系統(tǒng)或U盤下載到目標(biāo)系統(tǒng)中。主要內(nèi)容1426MiniGUI簡(jiǎn)介MiniGUI在Linux下運(yùn)行環(huán)境的建立Linux下S3C2410FrameBuffer的啟動(dòng)MiniGUI輸入引擎IAL的開發(fā)7在S3C2410上運(yùn)行簡(jiǎn)單的繪圖程序5MiniGUI在S3C2410上的移植3在QVFB上的仿真應(yīng)用

6.6.1IAL引擎簡(jiǎn)介

MiniGUI引入了輸入抽象層(GraphicsandInputAbstractLayer,即GAL和IAL)的概念。抽象層的概念類似于Linux虛擬文件系統(tǒng)的概念。它定義了一組不依賴于任何特殊硬件的抽象接口,所有頂層的輸入處理都建立在抽象接口之上。由于實(shí)現(xiàn)這一輸入抽象接口的底層代碼是一種類似于操作系統(tǒng)驅(qū)動(dòng)程序的“輸入引擎”,所以它的設(shè)計(jì)實(shí)際上是一種面向?qū)ο蟮某绦蚪Y(jié)構(gòu)。利用這種抽象接口,可以將MiniGUI方便地移植到其它POSIX系統(tǒng)上。一般嵌入式Linux操作系統(tǒng)都具有FrameBuffer的支持,所以針對(duì)特定嵌入式設(shè)備,只需要編寫輸入引擎IAL即可。

6.6.2IAL引擎的開發(fā)以4×4鍵盤為例,介紹IAL引擎的開發(fā)。BOOLInitADSInput(INPUT*input,constchar*mdev,constchar*mtype){ //只讀形式打開鍵盤設(shè)備

kbd_fd=open("/dev/Kbd7279",O_RDONLY);if(kbd_fd<0){fprintf(stderr,"IAL:Cannotopentouchscreen!\n");returnFALSE;} //關(guān)閉鍵盤鎖燈

led_off(); //輸入引擎與虛擬接口間的聯(lián)系

input->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=keyboard_getstate;input->set_leds=NULL;input->wait_event=wait_event;

mousex=0;

mousey=0;returnTRUE;}主要內(nèi)容1426MiniGUI簡(jiǎn)介MiniGUI在Linux下運(yùn)行環(huán)境的建立Linux下S3C2410FrameBuffer的啟動(dòng)MiniGUI輸入引擎IAL的開發(fā)7在S3C2410上運(yùn)行簡(jiǎn)單的繪圖程序5MiniGUI在S3C2410上的移植3在QVFB上的仿真應(yīng)用6.7.1MiniGUI的基本繪圖函數(shù)voidGUIAPISetPixel(HDChdc,intx,inty,gal_pixelc);

//設(shè)定像素值

voidGUIAPISetPixelRGB(HDChdc,intx,inty,intr,intg,intb);

//設(shè)定像素RGB值

gal_pixelGUIAPIGetPixel(HDChdc,intx,inty);//得到像素的坐標(biāo)

voidGUIAPIGetPixelRGB(HDChdc,intx,inty,int*r,int*g,int*b);

//得到像素的RGB值voidGUIAPILineTo(HDChdc,int

溫馨提示

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

評(píng)論

0/150

提交評(píng)論