欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種嵌入式圖形系統(tǒng)的多窗口管理器的制作方法

文檔序號:6481903閱讀:203來源:國知局
專利名稱:一種嵌入式圖形系統(tǒng)的多窗口管理器的制作方法
技術領域
本發(fā)明涉及多窗口管理系統(tǒng)和方法,更具體地說,涉及嵌入式GUI (圖形用戶界面)的多窗口畫面刷新方法和消息處理機制。
背景技術
具有WINDOWS風格的多窗口顯示是一種流行的、受到廣大用戶歡迎的技術。由于交互性好,越來越多地在生產(chǎn)、生活等各種領域得到廣泛應用。
現(xiàn)有技術中對于多窗口的管理,常采用類似X Window系統(tǒng)的C/S (客戶端/服務器)體系架構,接收客戶端發(fā)送的請求,響應用戶對窗口的操作。
窗口管理系統(tǒng)定義了桌面上窗口的外觀,并控制著如何操作和放置窗口,例如打開、關閉、移動、調整大小、最小化,等等。還可能處理會話管理功能,比如如何將會話暫停、恢復、重啟和結束。
窗口管理系統(tǒng)還控制著窗口裝飾,也就是窗口的標題欄和邊框。除了美學方面的考慮之外,通過改變窗口的裝飾還能夠改變它們的功能即改變標題欄上按鈕的數(shù)目和擺放。
窗口管理系統(tǒng)也負責管理窗口操作。也就是說,窗口管理系統(tǒng),控制著X窗口系統(tǒng)環(huán)境中窗口的所有方面。
采用這種方式對多窗口進行管理,占用系統(tǒng)的資源多,效率低,實時性較差,并且需要操作系統(tǒng)和庫的支持。更重要的是,現(xiàn)有技術中對于多窗口的管理并不適合在嵌入式系統(tǒng)中使用,因為現(xiàn)在流行的嵌入式系統(tǒng)在面向具體應用時,比如過程控制,有較強的實時性要求;而嵌入式系統(tǒng)本身資源較少,且不一定包含操作系統(tǒng)及所需的庫文件,因此難以支撐現(xiàn)有窗口管理系統(tǒng)的應用與作用的發(fā)揮。

發(fā)明內(nèi)容
本發(fā)明要解決的技術問題是提供一種嵌入式GUI系統(tǒng)的多窗口管理系統(tǒng)和方法,其具備一般窗口系統(tǒng)的功能,支持多個子窗口嵌套重疊,界面類似于Windows等經(jīng)典窗口系統(tǒng),包含桌面、任務欄、快捷菜單等經(jīng)典窗口元素,使操作界面更友好。
本發(fā)明所述的一種多窗口管理系統(tǒng),其可用于嵌入式系統(tǒng),包括前端操作和后端操

消息處理模塊執(zhí)行前端操作,用于處理用戶消息并將窗口基本組件區(qū)域變化信息以臟區(qū)域隊列方式輸出;
畫面刷新模塊執(zhí)行后端操作,用十將傳遞來的臟區(qū)域隊列解析,將組件最新區(qū)域信息輸送至屏幕顯示緩沖區(qū),完成顯示刷新。
本發(fā)明還提出了一種用于嵌入式系統(tǒng)的多窗口管理方法,其特征在于,包括前端操作和后端操作
查詢消息隊列是否有輸入消息,若有,調用消息處理模塊處理該消息并將其列入臟
區(qū)域隊列;
接著,再查詢消息隊列是否空,如果不為空,就繼續(xù)調用消息處理模塊處理,直至遍歷完消息隊列;
由畫面刷新模塊查詢臟區(qū)域隊列,如果臟區(qū)域隊列不為空,則進行畫面刷新;直至臟區(qū)域隊列為空時,則畫面刷新完畢。
本發(fā)明具有與平臺無關,不需要任何庫的支持的特點,可方便地移植到各種軟硬件系統(tǒng),甚至可用于不含操作系統(tǒng)的平臺,因此具有很好的移植性。
本發(fā)明所述多窗口管理系統(tǒng)能夠提供打開、關閉、移動、最大化、最小化、縮放和焦點切換等基本窗口操作,及窗口半透明功能(只有后端操作,在畫面刷新模塊中完成),可以很方便地實現(xiàn)其他復雜窗口功能。如通過定時最小化、最大化切換,可實現(xiàn)窗口閃爍;通過定時移動微小距離,可實現(xiàn)窗口振動;通過定時半透明窗口 (半透明值遞增或遞減),可實現(xiàn)窗口淡入淡出的效果。若有打印驅動的支持,可以方便地實現(xiàn)窗口打印和屏幕打印操作(打印數(shù)據(jù)已存儲在窗口、屏幕顯示緩沖區(qū)中)。因此本發(fā)明具有較好的擴展性。


圖1為本發(fā)明所述多窗口系統(tǒng)的MiMft示意圖;圖2為本發(fā)明基本組件的組成示意圖;
圖3為屏幕坐標系、窗口坐標系示意圖4為顯示緩沖區(qū)層次示意圖5為按鈕按下時臟區(qū)域登記示意圖6為窗口移動時臟區(qū)域登記示意圖7為一個簡單的窗口模型示例;
圖S為圖7窗口模型示例的結構簡化示意圖9為一種窗口數(shù)據(jù)存儲示意圖IO為本發(fā)明所述的多窗口系統(tǒng)的結構示意圖;圖11為臟區(qū)域隊列優(yōu)化流程5圖12為窗口管理線程執(zhí)行流程圖13為消息處理操作流程圖14為畫面刷新操作流程圖15為窗口刷新操作流程圖16為屏幕刷新操作流程圖17為窗口顯示緩沖區(qū)刷新流程圖18為屏幕顯示緩沖區(qū)刷新流程圖19為元件顯示緩沖區(qū)刷新窗口顯示緩沖區(qū)示意圖20為窗口打開前端操作流程圖21為窗口關閉甜端操作流程圖22為窗口移動前端操作流程圖23為窗口焦點切換前端操作流程圖。
具體實施例方式
圖1為本發(fā)明所述多窗口系統(tǒng)的組件示意圖。針對本發(fā)明的多窗口管理系統(tǒng),可抽
象出一些基本組件顯存、屏幕、窗口和功能元件,其中有-
顯存是由系統(tǒng)提供的顯示緩沖區(qū),與顯示屏上的像素點一一對應,刷新顯示緩沖區(qū)中的數(shù)據(jù),就能改變顯示屏上的顯示內(nèi)容,完成畫面刷新。
屏幕相當于一個在內(nèi)存中的虛擬顯存,并管理著當前所有打開的窗口,是窗口的載體。
窗口是一組功能元件的集合,是元件的載體。其由背景、邊框、標題欄及功能元件組成??煞譃橄到y(tǒng)窗口 (桌面、任務欄、快捷菜單、信息提示等窗口)和彈出窗口。
功能元件包括靜態(tài)顯示(字符、圖片等)、按鈕、編輯框、滾動條、動畫、顯示列表以及自定義元件等。通過系統(tǒng)提供的定制接口,其他功能元件可以用基本元件定制實現(xiàn)。如下拉菜單,可以通過按鈕和彈出窗口定制,單選框、復選框及進度條則可以通過按鈕定制。功能元件可以關聯(lián)一組數(shù)據(jù),關聯(lián)數(shù)據(jù)可從服務器端獲取,也可從本地得到。通過關聯(lián)數(shù)據(jù),各功能元件之間就能相互通信,以完成各種復雜的邏輯。
圖2為每個皿的具體組成示意圖。其中公共數(shù)據(jù)包括顯示區(qū)域、顯示緩沖區(qū)。顯示區(qū)域是組件在對應坐標系下的矩形區(qū)域。
顯示緩沖區(qū)存儲組件當前的顯示內(nèi)容,按層次可分為元件顯示緩沖區(qū)、窗口顯示緩沖區(qū)、屏幕顯示緩沖區(qū)和顯存緩沖區(qū)。當畫面刷新時,顯示緩沖區(qū)按層次依次被刷新,最終顯存緩沖區(qū)被刷新,這樣就完成一次畫面刷新操作。
臟區(qū)域隊列需要刷新的區(qū)域由臟區(qū)域隊列提供。其記錄了組件需要刷新的區(qū)域,刷新時,只更新顯示緩沖區(qū)中對應的這些區(qū)域,以提高刷新效率。
從圖2可以看出,屏幕顯示緩沖區(qū)和顯存緩沖區(qū)構成雙緩沖顯示模式,避免了刷新過程中顯示屏的閃爍問題。
圖3給出了屏幕坐標系與窗口坐標系之間關系的示意圖,具體地說,元件的顯示區(qū)域屬于窗口坐標系;窗口的顯示區(qū)域屬于屏幕坐標系。屏幕和顯存的顯示區(qū)域一樣,都對應顯示屏的大小。
圖4則為顯示緩沖區(qū)層次示意圖。所謂顯示緩沖區(qū),是指存儲組件在當前的顯示內(nèi)容。按層次可分為元件顯示緩沖區(qū)、窗口顯示緩沖區(qū)、屏幕顯示緩沖區(qū)和顯存緩沖區(qū)。當畫面刷新時,顯示緩沖區(qū)按層次依次被刷新,最終顯存緩沖區(qū)被刷新,這樣就完成一次畫面刷新操作。
當組件創(chuàng)建、隱藏、關閉時,或組件的顯示內(nèi)容、顯示位置改變時,會將顯示區(qū)域登記到下一層組件對象的臟區(qū)域隊列中。結合圖4的示意,元件顯示區(qū)域就會被登記到窗口臟區(qū)域隊列,窗口顯示區(qū)域則會被登記到屏幕臟區(qū)域隊列。
如圖5所示,假設按鈕B所顯示的區(qū)域為X二Rb,窗口 W的顯示區(qū)域為Y=Rw,則Fy(x)為返回區(qū)域x在區(qū)域y所在坐標系下的區(qū)域,即R,b = F—Rw (Rb)。如圖5所示,當按鈕B被按下時,會將按鈕區(qū)域登記到窗口 W的臟區(qū)域隊列,并將轉化到屏幕S的按鈕區(qū)域登記到屏幕臟區(qū)域隊列。
如圖6所示,假設窗口 W移動前顯示區(qū)域為Rw,移動后顯示區(qū)域為R'w,當窗口移動時,會將移動前和移動后的窗口區(qū)域都登記到屏幕臟區(qū)域隊列。
圖7是一個簡單窗口模型示意圖,屏幕S上打開了窗口 Wl、 W2、 W3、 Wll、 W12、W13和W121,其中,Wl桌面,W2任務欄,W3快捷菜單是系統(tǒng)窗口, Wll、 W12、W13是Wl的彈出子窗口, W121是W12的彈出子窗口。
圖8是對應的結構簡化示意圖。
結合閣2與圖8,屏幕用來管理所有打開的窗口,維護系統(tǒng)窗口隊列和彈出窗口隊列。系統(tǒng)窗口隊列是根窗口隊列,窗口遍歷操作從這里開始執(zhí)行。系統(tǒng)窗口包括桌面、任務
欄、快捷菜單和信息提示等窗口。與Windows窗口系統(tǒng)類似,桌面窗口占據(jù)整個屏幕大小,
彈出窗口在這里創(chuàng)建。
任務欄窗口顯示彈出窗口的窗口圖標,通過這些圖標可以方便地將焦點切換到目標窗口以及最小化、最大化目標窗口。同時可顯示CPU使用率、內(nèi)存使用率等系統(tǒng)信息。快捷菜單窗口提供一些常用功能元件。信息提示窗口提示系統(tǒng)異常信息。
彈出窗口隊列記錄所有打開的彈出窗口 。窗口管理元件隊列和彈出子窗口隊列,元件隊列記錄執(zhí)行相關功能的一組功能元件,子窗口隊列按子窗口 Z序記錄當前窗口彈出的所有子窗口 。
窗口屬性包括邊框、背景、標題、透明度和窗n類型(壟斷、跟隨、頂層和底層等)。垃圾收集器用于管理窗口生命期(從打開到關閉)內(nèi)的動態(tài)內(nèi)存使用,用戶可以根據(jù)實際情況定制合適的垃圾收集器,提高內(nèi)存管理效率,避免內(nèi)存泄露、內(nèi)存碎片等問題。
功能元件是執(zhí)行具體功能的組件,如按鈕nJ彈出窗口,編輯框可輸入信息,滾動條可以
在給定范圍內(nèi)改變數(shù)據(jù),動畫可以定時改變顯示內(nèi)容等等。
元件屬性主要是功能參數(shù),如彈出窗口號,可輸入字符數(shù),滾動范圍等。界面顯示指元件顯示內(nèi)容,主要是位圖或字符等信息。
以上所述的窗口和元件數(shù)據(jù)(主要是顯示區(qū)域、窗口屬性、元件屬性等)可以存儲在閃存中,也可以在程序中生成。
圖9是窗口數(shù)據(jù)存儲的一個簡單例子,窗口索引表是窗口數(shù)據(jù)的偏移表,元件索引表是元件數(shù)據(jù)的偏移表。
以上介紹了窗口系統(tǒng)的概念抽象和數(shù)據(jù)組織,下面將介紹本發(fā)明所述的多窗口管理系統(tǒng)的主要模塊。
圖IO給出了本發(fā)明的一種用于嵌入式系統(tǒng)的多窗口管理系統(tǒng),其可用于嵌入式系統(tǒng),包括前端操作和后端操作
消息處理模塊執(zhí)行前端操作,用于處理用戶消息并將窗口基本組件區(qū)域變化信息以臟區(qū)域隊列方式輸出;
畫面刷新模塊執(zhí)行后端操作,用于將傳遞來的臟區(qū)域隊列解析,將組件最新區(qū)域信息輸送至屏幕顯示緩沖區(qū),完成顯示刷新。
本發(fā)明所述多窗口管理系統(tǒng)的特點是占用一個進程,所有窗口操作都在這個進程中完成,該進程執(zhí)行一個循環(huán)操作。
本發(fā)明將窗口操作分為前端操作和后端操作兩部分
前端操作由消息處理模塊來執(zhí)行相關功能,其特點是運算量小,如窗口移動,只需改變窗口顯示區(qū)域;切換窗口焦點,只需調整子窗口隊列;由于前端操作執(zhí)行時間很短,保證了相對固定的響應時間,因此實時性較高。
畫面刷新模塊執(zhí)行后端操作,主要包括顯示內(nèi)容的刷新,其特點是運算量較大。后端操作主要是運算量較大的畫面刷新操作,這兩個模塊通過臟區(qū)域隊列進行銜接。
8畫面刷新模塊采用分層的方式進行刷新操作,以提高刷新效率。如圖4所示,組件
的顯示內(nèi)容存儲在組件顯示緩沖區(qū)中,刷新時,根據(jù)臟區(qū)域隊列依次刷新即窗口顯示緩沖區(qū)、屏幕顯示緩沖區(qū)和顯存緩沖區(qū)依次刷新,而元件顯示緩沖區(qū)的刷新在前端部分,即消息處理模塊中完成;當顯存緩沖區(qū)被刷新后,就完成了一次畫面刷新操作。因此畫面刷新主要包括窗口顯示緩沖區(qū)的刷新和屏幕顯示緩沖區(qū)的刷新。
由于采用分層的刷新方法和優(yōu)化的臟區(qū)域隊列算法,將刷新操作的運算量降到最低,并且支持窗口垃圾收集器,因此本發(fā)明具有較高的效率。又由于采用雙緩沖的顯示機制,避免了畫面刷新時的閃屏問題,因此本發(fā)明具有較好的顯示效果。
消息處理模塊用于輸入消息,畫面刷新模塊則輸出顯示,因此,本發(fā)明多窗口管理系統(tǒng)進一步包括-
消息輸入接口,例如鼠標、觸控或按鍵等,消息輸入接口將用戶輸入消息寫入消息隊列;
顯示輸出接口,例如顯存或類似顯存的。本發(fā)明將顯示輸出接口抽象為基本組件,通過與其他組件的交互,完成畫面刷新操作。畫面刷新是指當組件的顯示內(nèi)容改變時,在顯示屏上同步顯示出來。
可見,本發(fā)明所述多窗口管理器以用戶消息為輸入,以畫面顯示為輸出,是消息驅動類型的窗口系統(tǒng)。
圖11給出的是優(yōu)化的臟區(qū)域隊列算法,臟區(qū)域優(yōu)化包括窗口臟區(qū)域優(yōu)化和屏幕臟區(qū)域優(yōu)化。
所謂窗口臟區(qū)域優(yōu)化,即臟區(qū)域合并操作。假設登記區(qū)域R到臟區(qū)域隊列Q,然后遍歷臟區(qū)域隊列Q,如果遍歷完臟區(qū)域隊列Q ,則結束遍歷;在未遍歷完臟區(qū)域隊列Q時,判斷是否有區(qū)域重合,如果有,則合并重合區(qū)域后繼續(xù)遍歷;如果沒有,則繼續(xù)遍歷。
所謂屏幕臟區(qū)域優(yōu)化,具體說明如下
在本發(fā)明中,因屏幕刷新涉及大量內(nèi)存拷貝操作,因此優(yōu)化屏幕臟區(qū)域隊列顯得尤為重要,可進一步提高刷新效率。主要采用如下思路屏幕刷新操作前,盡可能地合并屏幕臟區(qū)域,去除重疊區(qū)域;而屏幕刷新時,計算當前窗口實際需拷貝的區(qū)域,并按該區(qū)域進行拷貝操作。具體算法如下設RX是實際需拷貝的區(qū)域集,Rw是當前窗口區(qū)域,RS是合并后的屏幕臟區(qū)域集,RU是當前窗口的上層窗口區(qū)域集(隱藏窗口和半透明窗口除外),包括子窗口和上層兄弟窗口。貝(h RX = (Rw&RS)-RU即,目標窗口實際拷貝區(qū)域為,合并后的臟區(qū)域集與當前窗口區(qū)域的交集,減去上層窗口區(qū)域集。
圖12為本發(fā)明所述多窗口管理的處理方法,如圖12所示,首先查詢消息隊列是否有輸入消息,若有,就取出一條消息,并調用消息處理模塊處理該消息并將其列入臟區(qū)域隊列,接著,再查詢消息隊列是否空,如果不為空,就繼續(xù)調用消息處理模塊處理。直至遍歷完消息隊列。
査詢臟區(qū)域隊列,如果臟區(qū)域隊列不為空,則依次進行畫面刷新;直至臟區(qū)域隊列 為空時,則畫面刷新完畢。
當畫面刷新完畢后,則重新開始下一輪的查詢消息隊列。
圖13詳細地給出了消息處理模塊的處理流程。. 從根窗口開始遍歷子窗口隊列,具體做法是-
從根窗口開始,分發(fā)和處理消息,先將消息按順序分發(fā)給各子窗口處理,如果有子窗口 處理成功,則消息處理完畢,否則消息將分發(fā)到當前窗口處理,先判斷當前窗口是否隱藏, 如果是隱藏,則返回"失敗";如果當前窗口不是隱藏的,則進一步判斷消息是否在當前窗 口區(qū)域?如果是在當前窗口區(qū)域,則遍歷元件隊列并處理消息,返回"成功",如果不是在 當前窗口區(qū)域,則返回"失敗"。
消息處理過程中, 一旦消息被某個窗口成功處理,則消息處理完畢。否則繼續(xù)將消息分 發(fā)給其他窗口,直到遍歷完所有窗口。
圖14用于說明畫面刷新的基本步驟主要包括遍歷系統(tǒng)窗口隊列并刷新窗口,以 及遍歷系統(tǒng)窗口隊列并刷新屏幕,根據(jù)屏幕臟區(qū)域隊列刷新顯存緩沖區(qū)。
圖15用于說明圖14中的"遍歷系統(tǒng)窗口隊列并刷新窗口"步驟。 窗口刷新時,從根窗口開始,遍歷窗口隊列,根據(jù)窗口臟區(qū)域隊列,刷新所有窗口 顯示緩沖區(qū)。當刷新窗口顯示緩沖區(qū)時,結合圖17所示,要遍歷該窗口的所有元件隊 列,將元件顯示緩沖區(qū)拷貝到窗口顯示緩沖區(qū);如何拷貝,則參見圖19所示,圖19示 出了元件M刷新窗口 W顯示緩沖區(qū)(臟區(qū)域R)的顯示效果,即窗口W'。
圖16用于說明圖14中的"遍歷系統(tǒng)窗口隊列并刷新屏幕"步驟。 屏幕刷新時,從根窗口開始,遍歷窗口臟區(qū)域隊列,根據(jù)窗口臟區(qū)域隊列,刷新屏 幕顯示緩沖區(qū)。結合圖18,當刷新屏幕顯示緩沖區(qū)時,需要遍歷屏幕臟區(qū)域隊列。具體 做法是取出其中一個臟區(qū)域,判斷窗口是否為半透明,如果不是,則將當前窗口的顯 示緩沖區(qū)拷貝到屏幕顯示緩沖區(qū),同時完成窗口半透明操作。然后繼續(xù)完成遍歷直至所 有窗口都為半透明。
假設屏幕S,目標窗口W,顯示區(qū)域R,半透明度X,取值范圍為[O,l],則半透明操 作如下所示-
S,(r) = S(r)*X +W(r)* (l-X) r GR
注r是R上任意一點,W(r)是窗口 W在點r處的像素值,S(r)是半透明前屏幕S在 點r處的像素值,S,(r)是半透明后屏幕S在點r處的像素值。以上介紹了窗口系統(tǒng)的具體實現(xiàn),下面將介紹窗口系統(tǒng)的基本操作。窗口的基本操 作包括打開、關閉、移動、最大化、最小化、縮放及焦點切換等。
圖20為窗口打開的前端操作流程圖; 窗口打開,是指彈出窗口的打開。
首先新建窗口對象(由垃圾收集器等內(nèi)存管理模塊管理動態(tài)內(nèi)存),初始化窗口數(shù) 據(jù);如窗口屬性、元件數(shù)據(jù)等,可以從閃存中讀取,也可在程序中動態(tài)生成;
然后將目標窗口插入父窗口的子窗口隊列,以便在消息處理和畫面刷新時能夠遍歷
到;
接著插入屏幕彈出窗口隊列,便于快速查找彈出窗口;
將窗口圖標登記到任務欄窗口 ,這樣任務欄就能顯示目標窗口的圖標;
最后登記顯示區(qū)域到屏幕臟區(qū)域隊列,畫面刷新時將新窗口顯示出來。
圖21為窗口關閉的前端操作流程窗口關閉與窗口打開(結合圖20)的流程剛好相反,撤銷窗口圖標和從窗口隊列移 除目標窗口后,銷毀窗口對象并釋放窗口資源。
圖22為窗口移動的前端操作流程窗口移動, 一般指彈出窗口的移動。首先根據(jù)移動位移值改變目標窗口的顯示區(qū)域, 并登記到屏幕臟區(qū)域隊列,這個步驟可以參照圖6;然后用同樣的方法,取出一個字窗 口,判斷是否有跟隨屬性,然后用同樣的方法,移動所有跟隨屬性的子窗口。
圖23為窗口焦點切換前端操作流程圖。
窗口焦點切換, 一般指彈出窗口之間的焦點切換。先從父窗口的子窗口隊列中移除 目標窗口,然后插入父窗口的子窗口隊列的最頂層,接著對父窗口 (彈出窗口類型)遞 歸執(zhí)行焦點切換操作。
窗口最大化、最小化操作流程與窗口移動流程類似。窗口縮放操作流程較簡單,可 根據(jù)縮放位移值,改變目標窗口的顯示區(qū)域并刷新畫面即可。
上面詳細闡述了本窗口系統(tǒng)的基本組成、具體實現(xiàn)及基本操作。以上具體實施方式
, 進一步說明多窗口管理系統(tǒng)具有較高的實時性和執(zhí)行效率,很好的擴展性和移植性,友 好的操作界面。
雖然具體實施方式
說明了本發(fā)明,但是本發(fā)明并不局限于以上實施方式,而是可以在不脫離本發(fā)明思想的前提下,根據(jù)實際應用需求,作相應修改。例如
以上實施方式,默認在具有操作系統(tǒng)的平臺下完成,而實際上,本發(fā)明適用于所有 具備消息輸入接口和顯示輸出接口的系統(tǒng)平臺;
如果系統(tǒng)內(nèi)存資源比較緊張,則可去掉窗口系統(tǒng)中的屏幕顯示緩沖區(qū),甚至還可以 去掉元件顯/下緩沖區(qū);
以上實施方式,用雙向循環(huán)隊列的數(shù)據(jù)結構管理多個窗口,也可以用二叉樹來管理;
以上實施方式,多處涉及到遞歸執(zhí)行,在不支持遞歸操作的平臺上,可用迭代操作 代替。
權利要求
1、一種用于嵌入式系統(tǒng)的多窗口管理系統(tǒng),其特征在于消息處理模塊執(zhí)行前端操作,用于處理用戶消息并將窗口基本組件區(qū)域變化信息以臟區(qū)域隊列方式輸出;畫面刷新模塊執(zhí)行后端操作,用于將傳遞來的臟區(qū)域隊列解析,將組件最新區(qū)域信息輸送至屏幕顯示緩沖區(qū),完成顯示刷新。
2、 根據(jù)權利要求1所述的多窗口管理系統(tǒng),其特征在于,所述畫面刷新模塊根據(jù)臟區(qū)域隊列,針對窗口顯示緩沖區(qū)、屏幕顯示緩沖區(qū)和顯存緩沖區(qū)依次刷新。
3、 根據(jù)權利要求l所述的多窗口管理系統(tǒng),其特征在于,所述消息處理模塊完成 元件顯示緩沖區(qū)的刷新。
4、 根據(jù)權利要求l所述的多窗口管理系統(tǒng),其特征在于,其進一步 包括消息輸入接口設備,用于將用戶輸入消息寫入消息隊列; 顯示輸出接口設備,用于將顯示內(nèi)容在顯示屏上同步顯示出來。
5、 根據(jù)權利要求1所述的多窗口管理系統(tǒng),其特征在于,所述窗口基本組件包括 顯存、屏幕、窗口和功能元件。
6、 根據(jù)權利要求5所述的多窗口管理系統(tǒng),其特征在于,每個基本組件都包括顯 示區(qū)域和顯示緩沖區(qū)。
7 、 一種用于嵌入式系統(tǒng)的多窗口管理方法,其特征在于,包括前端操作和后端操作 査詢消息隊列是否有輸入消息,若有,調用消息處理模塊處理該消息并將其列入臟 區(qū)域隊列;接著,再查詢消息隊列是否空,如果不為空,就繼續(xù)調用消息處理模塊處理,直至 遍歷完消息隊列;由畫面刷新模塊查詢臟區(qū)域隊列,如果臟區(qū)域隊列不為空,則進行畫面刷新;直至 臟區(qū)域隊列為空時,則畫面刷新完畢。
8、根據(jù)權利要求7所述的多窗口管理方法,其特征在于,所述畫面刷新,包括遍 歷系統(tǒng)窗口隊列并刷新窗口,以及遍歷系統(tǒng)窗口隊列并刷新屏幕,根據(jù)屏幕臟區(qū)域隊列刷新顯存緩沖區(qū)。
9、根據(jù)權利要求8所述的多窗口管理方法,其特征在于,所述遍歷系統(tǒng)窗口隊列并刷新窗口,進一步包括從根窗tJ開始,遍歷窗U隊列,根據(jù)窗口臟區(qū)域隊列,刷新所有窗口顯示緩沖區(qū)。
10、 根據(jù)權利要求8所述的多窗口管理方法,其特征在于,所述遍歷系統(tǒng)窗口隊列并刷新屏幕,進一步包括從根窗口開始,遍歷窗口臟區(qū)域隊列,根據(jù)窗口臟區(qū)域隊列, 刷新屏幕顯示緩沖區(qū)。
11、 根據(jù)權利要求IO所述的多窗口管理方法,其特征在于,所述刷新屏幕顯示緩沖 區(qū),進一步包括遍歷屏幕臟區(qū)域隊列。
12、 根據(jù)權利要求11所述的多窗口管理方法,其特征在于,所述遍歷屏幕臟區(qū)域隊 列進一步包括取出其中一個臟區(qū)域,判斷窗口是否為半透明,如果不是,則將當前窗 口的顯示緩沖區(qū)拷貝到屏幕顯示緩沖區(qū),同時完成窗口半透明操作。然后繼續(xù)完成遍歷 直至所有窗口都為半透明。
13、 根據(jù)權利要求l所述的多窗口管理方法,其特征在于,所述多窗口管理的基本操作 包括打開、關閉、移動、最大化、最小化、縮放及焦點切換等。
14、 根據(jù)權利要求13所述的多窗口管理方法,其特征在于,所述窗口打開,包括 新建窗口對象,初始化窗口數(shù)據(jù);將目標窗口插入父窗口的子窗口隊列;插入屏幕彈出窗口隊列;將窗口圖標登記到任務欄窗口 ;最后登記顯示區(qū)域到屏幕臟區(qū)域隊列,畫面刷新時將新窗口顯示出來。
15、 根據(jù)權利要求13所述的多窗口管理方法,其特征在于,所述窗口關閉與窗口打開 的流程剛好相反。
全文摘要
本發(fā)明公開了一種用于嵌入式系統(tǒng)的多窗口管理系統(tǒng)和方法,所述系統(tǒng)包括消息處理模塊執(zhí)行前端操作,用于處理用戶消息并將窗口基本組件區(qū)域變化信息以臟區(qū)域隊列方式輸出;畫面刷新模塊執(zhí)行后端操作,用于將傳遞來的臟區(qū)域隊列解析,將組件最新區(qū)域信息輸送至屏幕顯示緩沖區(qū),完成顯示刷新。由于本發(fā)明采用分層的刷新方法和優(yōu)化的臟區(qū)域隊列算法,將刷新操作的運算量降到最低,并且支持窗口垃圾收集器,因此本發(fā)明具有較高的效率。又由于采用雙緩沖的顯示機制,避免了畫面刷新時的閃屏問題,因此本發(fā)明具有較好的顯示效果。
文檔編號G06F3/048GK101493751SQ20091003719
公開日2009年7月29日 申請日期2009年2月9日 優(yōu)先權日2009年2月9日
發(fā)明者池家武, 董鵬云, 馬學童 申請人:深圳市步科電氣有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
麻江县| 洪湖市| 民丰县| 巴中市| 寿阳县| 什邡市| 南漳县| 邯郸市| 涟水县| 金沙县| 高台县| 大关县| 镇坪县| 永仁县| 思茅市| 越西县| 张家界市| 乡宁县| 阿拉善右旗| 镇雄县| 梨树县| 渝中区| 宁武县| 井冈山市| 黑水县| 渑池县| 汝阳县| 五华县| 靖西县| 徐水县| 黔西| 博客| 武胜县| 二连浩特市| 五常市| 惠州市| 长沙市| 托克逊县| 潮安县| 达日县| 广南县|