版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1嵌入式系統(tǒng)AnIntroductiontoEmbeddedSystem第十五課嵌入式GUI浙江大學(xué)計(jì)算機(jī)學(xué)院陳天洲2011.4.272011夏學(xué)期,周三下午1-3節(jié),周四晚上1-3節(jié)玉泉曹光彪西501第十五課嵌入式GUI2
2課程大綱
嵌入式GPU
嵌入式OpenGLES2.0
嵌入式GUI簡介
XWindows
Tiny-X體系結(jié)構(gòu)
QT
MiniGUI
第十五課嵌入式GUI嵌入式芯片中的GPU重郵信科采用VivanteGPU開發(fā)TD-SCDMA芯片目的高帶寬3G基帶處理富媒體應(yīng)用第十五課嵌入式GUI手機(jī)上的GPU微軟WM系統(tǒng)GDI,通常由CPU運(yùn)算iPhone、Android等手機(jī),有專用GPU均支持OpenGLES2.0iPhone的桌面動畫效果是基于CoreAnimation技術(shù),屬于ESAndroid利用OpenGLES來處理器桌面卷動與動畫切換特效OpenGLES在手機(jī)上的工作,主要是用來處理圖形相關(guān)數(shù)據(jù)第十五課嵌入式GUIAppleTVAppleTV第一版本IntelPentiumM1.0GHz2MBofL2高速緩存nVidiaG72M顯示卡
64MBDDR2內(nèi)存內(nèi)置的40GB硬盤播放iTunes第十五課嵌入式GUIAppleA4處理器A4處理器應(yīng)用于新一代AppleTV尺寸僅有上代產(chǎn)品的四分之一98x98x23mm重270gIPhoneIPADAppleA4處理器組成A4封裝有三層兩層RAM(三星K4X1G323PE,256M)一層含有微處理器ARMCPU+GPUARM架構(gòu),1GHz主頻,Cortex-A8單核心微架構(gòu)顯示芯片(PowerVRSGXGPU)2024/11/6第十五課嵌入式GUI6Nvidia的TegraARM架構(gòu)CPU+整合HDvideo處理單元+圖像處理單元+音頻處理單元+低電壓版本GeForceGPU2008年6月Tegra600/650800MHzARM11CPU支持1080pH.264解碼的視頻處理器圖片處理器音頻處理器超低功耗的GeForceGPU運(yùn)行功耗卻僅為1W左右便攜式移動計(jì)算設(shè)備的應(yīng)用解決方案其極低的系統(tǒng)功耗和強(qiáng)勁的媒體處理能力第十五課嵌入式GUI嵌入式GPU(EmbeddedGPU)類似于顯示卡對嵌入式處理器提供輔助圖形計(jì)算能力產(chǎn)品高畫質(zhì)手持裝置、銷售點(diǎn)終端機(jī)、醫(yī)療裝置、多功能打印機(jī)、賭場游戲機(jī)、工業(yè)用計(jì)算機(jī)、服務(wù)器等嵌入式及消費(fèi)性應(yīng)用裝置編程以O(shè)penGL2.0為主流面向圖形編程第十五課嵌入式GUI多屏幕嵌入式GPUAMD基于OpenCL和Eyefinity技術(shù)桌面級嵌入式GPU最多支持6屏輸出,嵌入式GPUE6760VIA基于S3Chrome5400E的雙屏版eH1基于S3Chrome5400EW核心的四屏版uH8采用兩顆S3Chrome5400EW核心的八屏版uH89第十五課嵌入式GUIARM平臺上的GPUPowerVR最主流除了在ARM中應(yīng)用,也用于intel的凌動處理器最好性能,僅僅接近AMD與NVIDIQA能整合進(jìn)SOC成為單芯片系統(tǒng)的一部分,而不是獨(dú)立顯卡其次是ATI后被Qualcomm所購買的Adreno接著是NVIDIA使用在Tegra之中的GeForce核心ARM自己也開始出GPU,稱為Mali第十五課嵌入式GUIPowerVR英國Imagination公司目前PowerVRSGX5452到16個核心數(shù)量蘋果A5采用的是PowerVRSGX543MP2性能支持DX10.1/OpenGLES2.X/OpenGL3.X/OpenVG1.X/OpenCL1.X技術(shù),核心頻率200MHz每秒能生成4000萬個多邊形,像素處理能力則達(dá)1Gpixels/s11第十五課嵌入式GUIAdreno第三代產(chǎn)品配備1.5GHz增強(qiáng)內(nèi)核的QSD8672配備1.2GHz增強(qiáng)內(nèi)核的MSM8260與MSM8660三款產(chǎn)品均為雙CPU架構(gòu)。2011代號Krait(環(huán)蛇)的Snapdragon移動處理器微架構(gòu)單核MSM8930:全球首款集成LTEModem的單芯片解決方案,面向主流智能手機(jī),將集成Adreno305GPU,性能是第一代Adreno的6倍雙核MSM8960:全球首款集成多模式3G/LTE基帶的雙核方案,面向多任務(wù)智能手機(jī)和平板機(jī)。雙核心可實(shí)現(xiàn)異步頻率,支持雙通道LPDDR內(nèi)存,集成Adreno225GPU,圖形性能是第一代Adreno8倍四核版APQ8064:面向下一代計(jì)算和娛樂設(shè)備,內(nèi)置四個異步CPU核心,核心最高頻率2.5GHz,集成Adreno320四核GPU,圖形性能將是第一代Adreno的15倍以上。整體性能方面,APQ8064是第一代Snapdragon處理器的12倍,同時(shí)功耗下降了75%12第十五課嵌入式GUIGeForce超低功耗(ULP)架構(gòu)設(shè)計(jì)Tegra213第十五課嵌入式GUIMali目前是第四代,Mali-T604硬件“tri-pipe”三管線架構(gòu),可配置為1到4個Shader核心,廠商可自行配置二級緩存(推薦每核心32KB),內(nèi)建MMU顯存管理單元可支持虛擬顯存。支持4x/16x全屏抗鋸齒,支持AMBAAXI、AMBA4總線接口。軟件在OpenGLES1.1/2.0、OpenVG1.1的基礎(chǔ)上,加入了對OpenCL1.1/1.2和DirectX{Windows8}的支持。ARMv7CPU核心和GPU都以支持OpenCL1.114第十五課嵌入式GUI嵌入式GPU性能比較15第十五課嵌入式GUI16
16課程大綱
嵌入式GPU
嵌入式OpenGLES2.0
嵌入式GUI簡介
XWindows
Tiny-X體系結(jié)構(gòu)
QT
MiniGUI
第十五課嵌入式GUIOpenGLES2.0OpenGL(全寫OpenGraphicsLibrary)是個定義了一個跨編程語言、跨平臺的編程接口的規(guī)格,它用于三維圖象(二維的亦可)OpenGLES(OpenGLforEmbeddedSystems)是OpenGL三維圖形API的子集,針對手機(jī)、PDA和游戲主機(jī)等嵌入式設(shè)備而設(shè)計(jì)從OpenGL裁剪定制而來的,去除了glBegin/glEnd,四邊形(GL_QUADS)、多邊形(GL_POLYGONS)等復(fù)雜圖元等許多非絕對必要的特性免授權(quán)費(fèi)的,跨平臺的,功能完善的2D和3D圖形應(yīng)用程序接口API17第十五課嵌入式GUIOpenGLES2.0
兩個版本OpenGLES1.x針對固定管線硬件的OpenGLES2.x針對可編程管線硬件。KhronosGroup在2005-8發(fā)布commonprofileKhronos是一個圖形軟硬件行業(yè)協(xié)會,該協(xié)會主要關(guān)注圖形和多媒體方面的開放標(biāo)準(zhǔn)。業(yè)界標(biāo)準(zhǔn)應(yīng)用程序編程接口(API)可以大大提高不同消費(fèi)電子設(shè)備的3D圖形渲染速度,在嵌入式系統(tǒng)上實(shí)現(xiàn)了全面可編程的3D圖形18第十五課嵌入式GUI具體使用,參考浙江大學(xué)《智能終端軟件開發(fā)》中openGLes課件19第十五課嵌入式GUI20
20課程大綱
嵌入式GPU
嵌入式OpenGLES2.0
嵌入式GUI簡介
XWindows
Tiny-X體系結(jié)構(gòu)
QT
MiniGUI
第十五課嵌入式GUI21嵌入式GUI簡介嵌入式設(shè)備對GUI的限制
CPU速度相對來說較慢,一般不具備浮點(diǎn)運(yùn)算功能或浮點(diǎn)運(yùn)算功能較弱內(nèi)存、外存容量小電量有限嵌入式GUI設(shè)計(jì)包括以下3個方面:硬件設(shè)計(jì),通過LCD控制器把LCD顯示器和開發(fā)系統(tǒng)連接起來。驅(qū)動程序設(shè)計(jì),為輸出輸入設(shè)備如LCD設(shè)計(jì)驅(qū)動程序,使硬件能驅(qū)動起來用戶界面程序設(shè)計(jì),使用嵌入式系統(tǒng)提供的函數(shù)庫進(jìn)行圖形化程序設(shè)計(jì)21第十五課嵌入式GUI嵌入式GUI的模塊GUI用戶接口模塊為上層應(yīng)用軟件開發(fā)人員提供方便、易用的API接口函數(shù)屏蔽了GUI的設(shè)備實(shí)現(xiàn)細(xì)節(jié)GUI對象模塊對窗口環(huán)境中的邏輯對象進(jìn)行組織管理包括對象的添加、刪除引發(fā)的對象鏈表的更新,以及GUI窗口顯示的維護(hù),如窗口切換、焦點(diǎn)切換、對象的隱藏和恢復(fù)等操作引發(fā)的對象屬性的更新,還有對不同控件的各種事件的響應(yīng)GUI基本圖形模塊實(shí)現(xiàn)對顯示輸出設(shè)備的操作,如畫點(diǎn)、畫線、畫矩形等基本功能對于字符的解析輸出,以及對圖形的解析輸出獨(dú)立于具體的設(shè)備驅(qū)動程序,與物理設(shè)備之間形成“設(shè)備抽象層”GUI消息驅(qū)動模塊負(fù)責(zé)GUI的消息接收和與其它任務(wù)的通訊以及消息隊(duì)列的維護(hù)22第十五課嵌入式GUI嵌入式GUI的特點(diǎn)可移植性較高的穩(wěn)定性和可靠性系統(tǒng)開銷少占用的存儲空間以及運(yùn)行時(shí)占用資源少運(yùn)行速度以及響應(yīng)速度快較高可配置性可裁減性、界面特性配置、皮膚和主題配置23第十五課嵌入式GUI嵌入式GUI系統(tǒng)結(jié)構(gòu)一個能夠移植到多種硬件平臺上的嵌入式GUI系統(tǒng),應(yīng)用至少抽象出兩類設(shè)備基于圖形顯示設(shè)備(如VGA卡)的圖形抽象層GAL(GraphicAbstractLayer)基于輸入設(shè)備(如鍵盤,觸摸層等)的輸入抽象層IAL(InputAbstractLayer)[2]24第十五課嵌入式GUI目前在嵌入式系統(tǒng)比較流行的GUI國外Qt/Embedded是一個C++函數(shù)庫,支持真正的組件編程MicroWindows開放源碼,C/S結(jié)構(gòu),三層,LGPLOpenGUI適合于x86,可移植性比較差Tiny-X是標(biāo)準(zhǔn)X-windows系統(tǒng)的簡化版國內(nèi)MiniGUI基于Linux,輕量級自由軟件,LGPL清華大學(xué)教師魏永明先生Kingmos-GWME消息事件驅(qū)動,豐富的基本控件和高級控件2525第十五課嵌入式GUI26對比MiniGUIMicroWindowsQT/EmbeddedAPIWin32風(fēng)格X,Win32的子集QT(C++)API是否完備是Win32支持賞不完備是函數(shù)庫的典型大小500K600K1.5M可移植性很好很好較好(但函數(shù)庫本身的跨平臺交叉編譯很困難)授權(quán)條款GPL/商業(yè)許可證MPL/LGPLQPL/GPL/商業(yè)許可證多進(jìn)程支持好X接口的多進(jìn)程支持好,Win32的接口尚不支持好健壯性/穩(wěn)定性好一般一般多語種支持獨(dú)特的多字符集支持功能,更加適合嵌入式系統(tǒng)一般采用UNICODE,但效率低可配置和可定制性好(提供了大量編譯配置選項(xiàng),可配置能力很強(qiáng))一般差系統(tǒng)資源耗費(fèi)小(多線程和MiniGUI-Lite均是針對最小系統(tǒng)資源消耗設(shè)計(jì))較大(基于UNIX套接字的傳統(tǒng)客戶/服務(wù)器體系,進(jìn)程間的通訊頻繁,系統(tǒng)資源消耗較大)最大(用C++實(shí)現(xiàn),系統(tǒng)資源消耗最大)效率好一般一般操作系統(tǒng)支持Linux/uClinux,eCos,uC/OS-II,VxWorks等LinuxLinux已知能運(yùn)行的的平臺x86、ARM、MIPS、PowerPC、StrongARM主頻最低需30MHz。x86、ARM、MIPS、StrongARM主頻最低需70MHz。x86、ARM、StrongARM主頻最低需100MHz。使用是否廣泛在中國大陸、臺灣地區(qū)等使用廣泛。產(chǎn)品涉及普通PC上的Linux發(fā)行版、PDA等手持設(shè)備、彩票機(jī)/POS機(jī)、機(jī)頂盒等等。主要針對手持設(shè)備。用戶主要限于美國,國內(nèi)有少數(shù)用戶。主要針對高端手持設(shè)備。在歐美、韓國等地區(qū)使用較為廣泛。第十五課嵌入式GUI27
27課程大綱
嵌入式GPU
嵌入式OpenGLES2.0
嵌入式GUI簡介
XWindows
Tiny-X體系結(jié)構(gòu)
QT第十五課嵌入式GUI28XWindows架構(gòu)采用客戶端/服務(wù)器的設(shè)計(jì)概念XWindows由3部分組成客戶端服務(wù)器X協(xié)議XWindows是事件驅(qū)動大部分時(shí)間處于一種等待事件發(fā)生的狀態(tài)28第十五課嵌入式GUI29XWindows的基本的API函數(shù)庫29第十五課嵌入式GUI30
30課程大綱
嵌入式GPU
嵌入式OpenGLES2.0
嵌入式GUI簡介
XWindows
Tiny-X體系結(jié)構(gòu)
QT
MiniGUI
第十五課嵌入式GUI31Tiny-X系統(tǒng)框架標(biāo)準(zhǔn)X-windows系統(tǒng)的簡化版設(shè)計(jì)目標(biāo)在小容量內(nèi)存的環(huán)境下運(yùn)行適合用作嵌入式linux的GUI系統(tǒng)采用標(biāo)準(zhǔn)的Client/Server體系結(jié)構(gòu)在嵌入式系統(tǒng)中使用Tiny-X圖形用戶界面開發(fā)產(chǎn)品,上層的應(yīng)用程序的編寫很方便31第十五課嵌入式GUI32Tiny-X系統(tǒng)架構(gòu)32第十五課嵌入式GUI33FrameBuffer――幀緩沖器TinyX(Xfbdev)――TinyX為Xwindows的微縮版,有經(jīng)過精簡的Xlib類庫Glib――包括一些基礎(chǔ)數(shù)據(jù)類型和典型的C程序需要的功能GDK――是建立在Xlib上的針對圖形圖像類封裝的底層圖形庫
Tiny-X結(jié)構(gòu)說明(1)33第十五課嵌入式GUI34Tiny-X結(jié)構(gòu)說明(2)GTK建立在Xlib和GDK上的高級面向?qū)ο蟮念悗齑翱诠芾砥鳎≦VWM)一種類似于window95風(fēng)格的窗口管理器GladeGTK的集成開發(fā)環(huán)境34第十五課嵌入式GUI35Tiny-X庫的調(diào)用關(guān)系
35第十五課嵌入式GUI36
36課程大綱
嵌入式GPU
嵌入式OpenGLES2.0
嵌入式GUI簡介
XWindows
Tiny-X體系結(jié)構(gòu)
QT
MiniGUI
第十五課嵌入式GUIQt基礎(chǔ)Qt是跨平臺的C++圖形用戶界面(GUI)工具包,它是TrollTech公司的標(biāo)志產(chǎn)品。Qt工具包有兩種不同的版本一種是用于商業(yè)性質(zhì)的專業(yè)版另一種是用于開發(fā)X平臺自由軟件的自由版用自由版開發(fā)軟件都必須作為自由軟件公開如果要用Qt編寫非自由軟件,則需要購買專業(yè)版。Qt是一種跨平臺的GUI工具包,軟件能非常方便地應(yīng)用于絕大多數(shù)操作系統(tǒng)MicrosoftWindows,Linux,Solaris,SunOS,HP_UX,DigitalUnix,Irix,FreeBSD,BSD/OS,SCO,AIX37第十五課嵌入式GUIQt特征面向?qū)ο螅耗K設(shè)計(jì),注重軟件構(gòu)件和元素的可重用性。構(gòu)件支持:提供signal和slot,對象之間可在不知道對方信息的情況下進(jìn)行合作。方便性:跨平臺GUI工具包,對編程人員隱藏了處理不同窗口系統(tǒng)時(shí)潛在的問題。國際化:Qt用戶界面文本,可以通過消息翻譯表被譯成各國語言。豐富的API完整的組件:按鈕、滾動條、自動布局組件等優(yōu)越的繪圖功能2D/3D圖形潤色功能38第十五課嵌入式GUIQt與X11的關(guān)系X11是XWindow系統(tǒng)第11版基于X的應(yīng)用是通過調(diào)用Xlib的庫函數(shù)來實(shí)現(xiàn)其各種功能的。Xlib是底層庫在其上又發(fā)展出比Xlib更高層次的庫函數(shù),稱為工具包將一些常用界面圖形或組件按面向?qū)ο缶幊痰姆绞浇M織到一起,供應(yīng)用軟件使用。不同公司或組織開發(fā)出不同的工具包,如Xt工具包,Motif工具包,Qt工具包等Qt工具包是優(yōu)秀強(qiáng)大的GUI工具包
linux上流行的桌面環(huán)境KDE是基于Qt開發(fā)出的39第十五課嵌入式GUIQt與X11的關(guān)系40第十五課嵌入式GUIQt應(yīng)用程序的執(zhí)行過程41第十五課嵌入式GUIQt基礎(chǔ)Qt的三個主要基類:1.QObject QObject是所有能夠處理signal,slot和事件的Qt對象的基類。Qt為對象的通信以及signal/slot連接提供了強(qiáng)大的機(jī)制,signal/slot機(jī)制比傳統(tǒng)的回調(diào)規(guī)則更先進(jìn)。 所有Qt組件都繼承QObject和使用signal/slot機(jī)制2.QApplication QApplication類負(fù)責(zé)GUI應(yīng)用程序的控制流程和主要的設(shè)置,它包含主事件循環(huán)體,負(fù)責(zé)處理和調(diào)度所有來自窗口系統(tǒng)和其他資源的事件,并且處理應(yīng)用程序的開始、結(jié)束以及會話管理,還包括應(yīng)用程序方面的設(shè)置。
QApplication實(shí)現(xiàn)的主要功能有:
1)初始化應(yīng)用程序、并設(shè)置用戶桌面的一些特性。如字體設(shè)置等。
2)執(zhí)行事件處理,從當(dāng)前的窗口系統(tǒng)接收事件并將其送給目標(biāo)組件。
3)解析命令行的變元和設(shè)置相應(yīng)的內(nèi)部狀態(tài)
4)定義應(yīng)用程序的外觀和感受
5)指明應(yīng)用程序如何分配顏色
6)指明默認(rèn)的文本編碼
7)管理應(yīng)用程序的鼠標(biāo)、光標(biāo)
8)提供完善的會話管理,使用戶注銷時(shí)終止應(yīng)用程序42第十五課嵌入式GUIQt基礎(chǔ)3.QWidgetQWidget類是所有用戶接口對象的基類,它繼承QObject類的屬性。組件是用戶界面的單元組成部分,它接收鼠標(biāo)、鍵盤和其他從窗口系統(tǒng)來的事件,并把它自己畫在屏幕上。一個不能移植到其父組件的組件成為頂層組件QWidget類有很多成員函數(shù),但是一般不直接使用,而是由其子類繼承,使用函數(shù)功能。所有的組件都繼承QWidget類,因此它的屬性其他組件都可以用。組件通常以QWidget類的抽象子類作為基類,利用基類的屬性并加上自己的特性作為它自己特有的屬性。如QPushButton以QButton為基類,而QButton是QWidget的抽象子類,它的屬性可以被子類所繼承,而它卻不能自己使用,即一般構(gòu)建的是QButton的子類。43第十五課嵌入式GUIQt與MotifQt是基于Xlib的工具包,Motif是基于Xt的工具包,而Xt是基于Xlib的工具包,因此二者建立的底層基礎(chǔ)是相同的。兩者的關(guān)系如圖44第十五課嵌入式GUIQt與Motif的區(qū)別編程語言和結(jié)構(gòu):Qt使用C++語言,具有面向?qū)ο蟮奶攸c(diǎn),而Motif使用的是C語言,因此Qt編寫的程序易懂、易維護(hù)內(nèi)涵:Qt僅是一種圖形用戶界面的工具包和開發(fā)工具;而Motif除了高級工具包外,還代表窗口管理器MotifWindowManager,還代表一種圖形用戶界面的風(fēng)格,即Motif風(fēng)格應(yīng)用范圍:Qt具有跨平臺的特性,可以在UNIX和Windows等操作系統(tǒng)上使用;而Motif則只能在UNIX上使用,不具有適應(yīng)多種平臺的特性,適應(yīng)范圍小圖形:Qt圖形功能更強(qiáng)大,Motif實(shí)現(xiàn)圖形功能方面有時(shí)還需要利用Xlib的函數(shù)來實(shí)現(xiàn)速度:Qt的速度比Motif快45第十五課嵌入式GUIKDE簡介KDE是一種圖形桌面集成環(huán)境,是一套使Unix系統(tǒng)擁有圖形操作集成環(huán)境的軟件。KDE起源于1996年10月,由德國人MattiasEttrich發(fā)起的KDE組織(KDesktopEnvironment)計(jì)劃的內(nèi)容標(biāo)準(zhǔn)的拖放機(jī)制;統(tǒng)一的應(yīng)用程序框架;類似ActivX的機(jī)制;大量軟件,如KFM(K),KPresnenter(類似PowerPoint),KIllustration、KOrganizer等;KDE的底層是XServer,然后是KWM(KWindowManager),KFM(K)和許多不同種類的客戶/服務(wù)器等。KDE為用戶提供了方便且全面的服務(wù),并有專門的KDE小組維護(hù)這套軟件KDE支持的操作系統(tǒng)有:Linux,FreeBSD,Solaris,HP_UX和MKLinux等。46第十五課嵌入式GUIKDE3.2桌面47第十五課嵌入式GUIQt的結(jié)構(gòu)48第十五課嵌入式GUIQtEmbedded結(jié)構(gòu)49第十五課嵌入式GUIQtopia結(jié)構(gòu)50第十五課嵌入式GUI51
51課程大綱
嵌入式GPU
嵌入式OpenGLES2.0
嵌入式GUI簡介
XWindows
Tiny-X體系結(jié)構(gòu)
QT
MiniGUI第十五課嵌入式GUIMINIGUI面向嵌入式系統(tǒng)的高級窗口系統(tǒng)(WindowingSystem)和圖形用戶界面(GraphicalUserInterface,GUI)支持系統(tǒng)魏永明先生于1998年底開始開發(fā)2002年創(chuàng)建北京飛漫軟件技術(shù)有限公司提供商業(yè)技術(shù)支持,同時(shí)也繼續(xù)提供開源版本飛漫軟件是中國地區(qū)為開源社區(qū)貢獻(xiàn)代碼最多的軟件企業(yè)最后一個采用GPL授權(quán)的MiniGUI版本是1.6.10,從MiniGUI2.0.4開始MiniGUI被重寫并使用商業(yè)授權(quán)支持Linux/uClinux、eCos、uC/OS-II、VxWorks、ThreadX、Nucleus、pSOS、OSE等操作系統(tǒng)和數(shù)十種SoC芯片,已驗(yàn)證的硬件平臺包括ARM-basedSoCs、MIPSbasedSoCs、IA-basedSoCs、PowerPC、M68K(DragonBall/ColdFire)、Intelx86等等,廣泛應(yīng)用于通訊、醫(yī)療、工控、電力、機(jī)頂盒、多媒體終端等領(lǐng)域52第十五課嵌入式GUIMINIGUI3.0/4.0圖形抽象層(GraphicsAbstractionLayer,GAL)。輸入抽象層(InputAbstractionLayer,IAL)。圖形設(shè)備接口(GraphicsDeviceInterfaces,GDI)。消息處理模塊(MessagingModule)。多窗口處理模塊(WindowingModule)和控件(Control或Widget)。外觀支持(LookandFeel)。53第十五課嵌入式GUIMiniGUIhelloworld#include<stdio.h>#include<minigui/common.h>#include<minigui/minigui.h>#include<minigui/gdi.h>#include<minigui/window.h>
intMiniGUIMain(intargc,constchar*argv[]){MSGMsg;HWNDhMainWnd;MAINWINCREATECreateInfo;
#ifdef_MGRM_PROCESSESJoinLayer(NAME_DEF_LAYER,"helloworld",0,0);#endifCreateInfo.dwStyle=WS_VISIBLE|WS_BORDER|WS_CAPTION;CreateInfo.dwExStyle=WS_EX_AUTOSECONDARYDC;CreateInfo.spCaption="Hello,World";CreateInfo.hMenu=0;CreateInfo.hCursor=GetSystemCursor(0);CreateInfo.hIcon=0;CreateInfo.MainWindowProc=DefaultMainWinProc;CreateInfo.lx=0;CreateInfo.ty=0;CreateInfo.rx=g_rcScr.right;CreateInfo.by=g_rcScr.bottom;CreateInfo.iBkColor=COLOR_lightwhite;CreateInfo.dwAddData=0;CreateInfo.hHosting=HWND_DESKTOP;
hMainWnd=CreateMainWindow(&CreateInfo);
if(hMainWnd==HWND_INVALID)return-1;
while(GetMessage(&Msg,hMainWnd)){TranslateMessage(&Msg);DispatchMessage(&Msg);}
MainWindowThreadCleanup(hMainWnd);return0;}54第十五課嵌入式GUIMiniGUIV3.0主窗口雙緩沖區(qū)(DoubleBufferingMainWindow)當(dāng)MiniGUI3.0的主窗口具有雙緩沖區(qū)時(shí),可以在自定義緩沖區(qū)中獲得整個主窗口的渲染結(jié)果。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司試用期轉(zhuǎn)正工作總結(jié)15篇
- 2021教師辭職報(bào)告(集錦15篇)
- 關(guān)于小學(xué)生祖國在我心中演講稿范文合集七篇
- 2024-2025學(xué)年高中語文 第三單元 古代議論性散文 序列寫作3善待生命 學(xué)習(xí)論證教學(xué)實(shí)錄 新人教版必修3
- 關(guān)于外貿(mào)類實(shí)習(xí)報(bào)告集錦五篇
- 八年級語文上冊 龜雖壽教學(xué)實(shí)錄 新人教版
- 江蘇省淮安市重點(diǎn)高中2025屆高三上學(xué)期12月階段性檢測生物試卷含答案
- 數(shù)字化背景下保險(xiǎn)法概論“雙線”教學(xué)模式的設(shè)計(jì)與實(shí)施
- 銀行對公業(yè)務(wù)主要產(chǎn)品介紹
- 簡單的暑假讀書心得作文100字10篇
- 雞毛信說課PPT課件
- 期末考試動員班會PPT課件.ppt
- 機(jī)場基本組成
- 2021年高考真題--化學(xué)(江蘇卷)(附解析)
- 腹膜透析的流行病學(xué)
- 西門子s7200通訊手冊通信
- 中小學(xué)數(shù)學(xué)學(xué)科德育實(shí)施指導(dǎo)綱要
- 關(guān)于試行房地產(chǎn)、產(chǎn)能過剩行業(yè)公司債券分類監(jiān)管的函
- 個體工商戶章程標(biāo)準(zhǔn)版
- 《病毒》教學(xué)設(shè)計(jì)
- 連鑄意外事故處理
評論
0/150
提交評論