基于Windows CE的多程序同時顯示方法及系統的制作方法
【專利摘要】本發(fā)明公開一種基于Windows?CE的多程序同時顯示方法及系統,所述方法包括:A、接口層接收各客戶端的虛擬覆蓋圖層申請,對各客戶端傳入的需要顯示的數據進行封裝,并將其發(fā)送至驅動層;B、服務端獲取驅動層中的封裝后數據,并利用其創(chuàng)建各客戶端的虛擬覆蓋圖層;C、服務端根據各客戶端虛擬覆蓋圖層的信息合成復合覆蓋圖層的圖像,并將該圖像刷新到物理頁面進行顯示。通過本發(fā)明系統實現每個客戶端可訪問多個overlay資源,實現資源的虛擬復用。使得在overlay資源不足的情況下,多個程序不需要進行復雜的配合,各個應用程序使用統一的接口進行資源的訪問,無需考慮資源的占用情況,方便程序的移植。
【專利說明】基于Windows CE的多程序同時顯示方法及系統
【技術領域】
[0001]本發(fā)明涉及圖像顯示領域,尤其涉及一種基于Windows CE的多程序同時顯示方法及系統。
【背景技術】
[0002]Windows CE (或簡稱WinCE)是微軟公司嵌入式、移動計算平臺的基礎,它是一個開放的、可升級的32位嵌入式操作系統,是基于掌上型電腦類的電子設備操作系統
WinCE系統的車載多媒體設備的界面設計中經常需要顯示一些需要置頂的內容,并且可能多個程序需要同時顯示,一般會使用覆蓋(overlay)技術(Overlay技術是微軟DirectDraw技術的一個特性,在硬件資源的支持下可以提高圖像顯示的效率,實現圖層復合等功能),但硬件overlay資源有限,無法滿足多個應用程序同時使用overlay資源進行界面設計的要求。為解決上述問題,目前采用的方法都是通過各個應用程序之間配合,例如B程序使用的時候A程序先釋放,再切換回A程序的時候B程序先釋放。但這樣做各個程序之間的配合會非常復雜,難以管理,并且難以移植。
[0003]因此,現有技術還有待于改進和發(fā)展。
【發(fā)明內容】
[0004]鑒于上述現有技術的不足,本發(fā)明的目的在于提供一種基于Windows CE的多程序同時顯示方法及系統,旨在解決目前Windows CE系統在無法實現多應用程序同時使用overlay資源顯示的問題。
[0005]本發(fā)明的技術方案如下:
一種基于Windows CE的多程序同時顯示方法,其中,所述方法包括以下步驟:
A、接口層接收各客戶端的虛擬覆蓋圖層申請,對各客戶端傳入的需要顯示的數據進行封裝,并將封裝后的數據發(fā)送至驅動層;
B、服務端獲取驅動層中的封裝后數據,并利用封裝后數據創(chuàng)建各客戶端的虛擬覆蓋圖
層;
C、服務端根據各客戶端虛擬覆蓋圖層的信息合成復合覆蓋圖層的圖像,并將該圖像刷新到物理頁面進行顯示。
[0006]所述的基于Windows CE的多程序同時顯示方法,其中,所述步驟A具體為:
Al、各客戶端調用接口層接口申請?zhí)摂M覆蓋圖層,并傳入需要顯示的圖像數據及屬
性;
A2、接口層將各客戶端傳入的圖像數據及屬性分別進行封裝并傳送給驅動層;
所述的基于Windows CE的多程序同時顯示方法,其中,所述步驟B具體為:
B1、驅動層接收到接口層傳送的各客戶端的封裝數據后向服務端發(fā)送通知;
B2、服務端接收通知后,獲取驅動層中的各客戶端的封裝數據,并利用該數據重建各客戶端的圖像數據及屬性; B3、利用重建的各客戶端的圖像數據及屬性分別創(chuàng)建各客戶端的虛擬覆蓋圖層。
[0007]所述的基于Windows CE的多程序同時顯示方法,其中,所述步驟C具體為:
Cl、服務端的顯示線程獲取各客戶端虛擬覆蓋圖層的信息,計算每個虛擬覆蓋圖層需要刷新的區(qū)域,并根據計算結果創(chuàng)建DIB位圖;
C2、創(chuàng)建覆蓋頁面的第一兼容設備描述表,將所創(chuàng)建的DIB位圖選入第一兼容設備描述表中;
C3、將第一兼容設備描述表拷貝到物理頁面設備描述表中,通過更新物理頁面,將DIB位圖圖像顯示到屏幕上。
[0008]所述的基于Windows CE的多程序同時顯示方法,其中,所述步驟A2具體為:
A21、創(chuàng)建兼容各客戶端設備描述表的第二兼容設備描述表,并根據第二兼容設備描述
表屬性創(chuàng)建DIB位圖;
A22、將所創(chuàng)建的DIB位圖選入第二兼容設備描述表,并將各客戶端設備描述表拷貝到第二兼容設備描述表中;
A23、將該包含DIB位圖的第二兼容設備描述表發(fā)送至驅動層。
[0009]一種基于Windows CE的多程序同時顯不系統,其中,所述系統包括:
客戶端,用于向接口層發(fā)送虛擬覆蓋圖層申請,并向接口層發(fā)送需要顯示的數據; 接口層,用于接收各客戶端的虛擬覆蓋圖層申請,對各客戶端傳入的需要顯示的數據
進行封裝,并將封裝后的數據發(fā)送至驅動層;
驅動層,用于接收接口層發(fā)送的封裝后的數據;
服務端,用于獲取驅動層中的封裝后數據,并利用封裝后數據創(chuàng)建各客戶端的虛擬覆蓋圖層,以及根據各客戶端虛擬覆蓋圖層的信息合成復合覆蓋圖層的圖像,并將該圖像刷新到物理頁面進行顯示。
[0010]有益效果:本發(fā)明提供一種基于Windows CE的多程序同時顯示方法及系統,通過本發(fā)明的系統實現每個客戶端可訪問多個overlay資源,實現資源的虛擬復用。本發(fā)明系統使得在overlay資源不足的情況下,多個程序不需要進行復雜的配合,各個應用程序使用統一的接口進行資源的訪問,無需考慮資源的占用情況,方便程序的移植。避免現有Windows CE中由于硬件overlay資源限制無法滿足多個應用程序同時使用overlay資源進行界面設計要求的問題。
【專利附圖】
【附圖說明】
[0011]圖1為本發(fā)明具體實施例中基于Windows CE的多程序同時顯示方法流程圖。
[0012]圖2為圖1中步驟S100的具體方法流程圖。
[0013]圖3為圖2中步驟S120的具體方法流程圖。
[0014]圖4為圖1中步驟S200的具體方法流程圖。
[0015]圖5為圖1中步驟S300的具體方法流程圖。
[0016]圖6為本發(fā)明具體實施例中基于Windows CE的多程序同時顯示系統的原理框圖。
[0017]圖7為本發(fā)明具體實施例中基于Windows CE的多程序同時顯示系統及其工作方法流程圖。【具體實施方式】
[0018]本發(fā)明提供一種基于Windows CE的多程序同時顯示方法及系統,為使本發(fā)明的目的、技術方案及效果更加清楚、明確,以下對本發(fā)明進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0019]本發(fā)明提供一種基于Windows CE的多程序同時顯示方法,其是在服務端內存中創(chuàng)建多個虛擬頁面(即將一個硬件overlay資源虛擬成多個),每個頁面對客戶端來說就是一個overlay頁面,服務端根據各個圖層的屬性操作最終的硬件overlay頁面。服務端操作實際的一個overlay資源,但對于客戶端來說,每個客戶端都可以訪問多個overlay資源,實現了資源的虛擬復用。
[0020]其中,所述基于Windows CE的多程序同時顯示方法如圖1所示,包括以下步驟: S100、接口層接收各客戶端的虛擬覆蓋圖層申請,對各客戶端傳入的需要顯示的數據
進行封裝,并將封裝后的數據發(fā)送至驅動層。
[0021]進一步的,所述步驟S100具體如圖2所示,其步驟為:
S110、各客戶端調用接口層接口申請?zhí)摂M覆蓋圖層(overlay虛擬圖層),并傳入需要顯示的圖像數據及屬性。
[0022]S120、接口層將各客戶端傳入的圖像數據及屬性分別進行封裝并傳送給驅動層。
[0023]具體實施例中,所述步驟S120如圖3所示,具體為:
S121、創(chuàng)建兼容各客戶端設備描述表的第二兼容設備描述表(設備描述表又稱為DC),并根據第二兼容設備描述表屬性創(chuàng)建DIB位圖。
[0024]S122、將所創(chuàng)建的DIB位圖選入第二兼容設備描述表,并將各客戶端設備描述表拷貝到第二兼容設備描述表中。
[0025]S123、將該包含DIB位圖的第二兼容設備描述表發(fā)送至驅動層。驅動層會驅動服務端對該位圖數據進行獲取。
[0026]S200、服務端獲取驅動層中的封裝后數據,并利用封裝后數據創(chuàng)建各客戶端的虛擬覆蓋圖層。即創(chuàng)建各客戶端的虛擬overlay圖層
進一步地,所述步驟S200如圖4所示,其步驟具體為:
S210、驅動層接收到接口層傳送的各客戶端的封裝數據后向服務端發(fā)送通知。通知服務端有新的數據到來,需要取走。
[0027]S220、服務端接收通知后,獲取驅動層中的各客戶端的封裝數據,并利用該數據重建各客戶端的圖像數據及屬性。
[0028]S230、利用重建的各客戶端的圖像數據及屬性分別創(chuàng)建各客戶端的虛擬覆蓋圖層。
[0029]S300、服務端根據各客戶端虛擬覆蓋圖層的信息合成復合覆蓋圖層的圖像,并將該圖像刷新到物理頁面進行顯示。復合覆蓋圖層的圖像即需要實際顯示到overlay圖層的圖像。
[0030]其中,所述步驟S300如圖5所示,其步驟具體為:
S310、服務端的顯示線程獲取各客戶端虛擬覆蓋圖層的信息,計算每個虛擬覆蓋圖層需要刷新的區(qū)域,并根據計算結果創(chuàng)建DIB位圖。
[0031]S320、創(chuàng)建覆蓋頁面(overlay頁面)的第一兼容設備描述表,將所創(chuàng)建的DIB位圖選入第一兼容設備描述表中。
[0032]S330、將第一兼容設備描述表拷貝到物理頁面設備描述表中,通過更新物理頁面,將DIB位圖圖像顯示到屏幕上。
[0033]通過上述方法使得WinCE系統在overlay資源不足的情況下,多個程序也不需要進行復雜的配合,各個應用程序使用統一的接口進行資源的訪問。
[0034]如圖6所示為本發(fā)明的基于Windows CE的多程序同時顯示系統的工作流程圖,所述系統包括:
客戶端100,用于向接口層發(fā)送虛擬覆蓋圖層申請,并向接口層發(fā)送需要顯示的數據,具體如步驟SlOO所述。簡單講,客戶端申請服務端的一個頁面用于顯示程序界面。
[0035]接口層200,用于接收各客戶端的虛擬覆蓋圖層申請,對各客戶端傳入的需要顯示的數據進行封裝,并將封裝后的數據發(fā)送至驅動層,具體如步驟S200所述。
[0036]驅動層300,用于接收接口層發(fā)送的封裝后的數據。由于客戶端和服務端分別屬于兩個進程,因此需要一個驅動層負責服務端和客戶端的數據交換,客戶端將要顯示的數據通過驅動傳給服務端,服務端通過驅動返回結果,具體如步驟S200所述。
[0037]服務端400,用于獲取驅動層中的封裝后數據,并利用封裝后數據創(chuàng)建各客戶端的虛擬覆蓋圖層,以及根據各客戶端虛擬覆蓋圖層的信息合成復合覆蓋圖層的圖像,并將該圖像刷新到物理頁面進行顯示,具體如步驟S300所述。功能上講,服務端負責創(chuàng)建各個客戶端的頁面,并管理這些頁面的屬性,最終確定哪些頁面需要刷新到overlay上顯示。
[0038]綜上所述,本系統由客戶端、接口層、驅動層(或叫進程間通訊驅動層)、服務端等幾部分組成,客戶端調用接口層提供的顯示接口,接口層負責把客戶端要顯示的數據通過驅動層傳遞給服務端,服務端取得數據后創(chuàng)建一個圖層,然后通知顯示線程,顯示線程負責搜集整理所有圖層的信息,計算圖層重疊區(qū)域等,然后將所以需要顯示的圖層圖像拷貝到overlay頁面中,調用顯示驅動提供的overlay接口,將所以客戶端創(chuàng)建的圖層顯示到同一個overlay上,實現資源的虛擬共享。
[0039]具體系統及其工作方法流程如圖7所示,多個客戶端(客戶端A、客戶端B、客戶端C)均可執(zhí)行步驟SI,調用接口層接口申請?zhí)摂Moverlay圖層。
[0040]S2、創(chuàng)建客戶端DC的兼容DC。根據發(fā)送虛擬overlay圖層申請的客戶端A、B、C創(chuàng)建兼容設備描述表。
[0041]S3、根據兼容DC屬性創(chuàng)建DIB位圖。
[0042]S4、將位圖選入兼容DC。
[0043]S5、將客戶端DC拷貝到兼容DC。
[0044]S6、將位圖數據傳入驅動,即將DIB位圖及兼容DC傳送至驅動層。
[0045]S7、驅動層通知服務端獲取數據。服務端對數據進行獲取,則執(zhí)行步驟S8。
[0046]S8、返回數據給服務端。
[0047]S9、從驅動取得位圖數據,創(chuàng)建圖層,及執(zhí)行圖像數據重建,在創(chuàng)建虛擬圖層后執(zhí)行步驟SlO。
[0048]S10、通知顯示線程。
[0049]S11、獲取所有虛擬圖層的信息,計算需要刷新的區(qū)域等。
[0050]S12、每個需要刷新的哦圖層,根據位圖數據創(chuàng)建DIB位圖 S13、創(chuàng)建overlay頁面的兼容DC并將創(chuàng)建的位圖選入此DC。
[0051]S14、將兼容DC拷貝到overlay的頁面DC中。
[0052]S15、更新overlay頁面,將圖像顯示到屏幕上。通過顯示驅動驅動硬件對圖像進行顯示。
[0053]另外,在服務端從驅動層獲取到位圖數據后,會返回結果,并將該結果通過驅動層,發(fā)送至接口層,最后由接口層返回至相應客戶端。
[0054]本發(fā)明提供一種基于Windows CE的多程序同時顯示方法及系統,通過本發(fā)明的系統實現每個客戶端可訪問多個overlay資源,實現資源的虛擬復用。本發(fā)明系統使得在overlay資源不足的情況下,多個程序不需要進行復雜的配合,各個應用程序使用統一的接口進行資源的訪問,無需考慮資源的占用情況,方便程序的移植。避免現有Windows CE中由于硬件overlay資源限制無法滿足多個應用程序同時使用overlay資源進行界面設計要求的問題。
[0055]應當理解的是,本發(fā)明的應用不限于上述的舉例,對本領域普通技術人員來說,可以根據上述說明加以改進或變換,所有這些改進和變換都應屬于本發(fā)明所附權利要求的保護范圍。
【權利要求】
1.一種基于Windows CE的多程序同時顯示方法,其特征在于,所述方法包括以下步驟: A、接口層接收各客戶端的虛擬覆蓋圖層申請,對各客戶端傳入的需要顯示的數據進行封裝,并將封裝后的數據發(fā)送至驅動層; B、服務端獲取驅動層中的封裝后數據,并利用封裝后數據創(chuàng)建各客戶端的虛擬覆蓋圖層; C、服務端根據各客戶端虛擬覆蓋圖層的信息合成復合覆蓋圖層的圖像,并將該圖像刷新到物理頁面進行顯示。
2.根據權利要求1所述的基于WindowsCE的多程序同時顯示方法,其特征在于,所述步驟A具體為: Al、各客戶端調用接口層接口申請?zhí)摂M覆蓋圖層,并傳入需要顯示的圖像數據及屬性; A2、接口層將各客戶端傳入的圖像數據及屬性分別進行封裝并傳送給驅動層。
3.根據權利要求2所述的基于WindowsCE的多程序同時顯示方法,其特征在于,所述步驟B具體為: B1、驅動層接收到接口層傳送的各客戶端的封裝數據后向服務端發(fā)送通知; B2、服務端接收通知后,獲取驅動層中的各客戶端的封裝數據,并利用該數據重建各客戶端的圖像數據及屬性; B3、利用重建的各客戶端的圖像數據及屬性分別創(chuàng)建各客戶端的虛擬覆蓋圖層。
4.根據權利要求3所述的基于WindowsCE的多程序同時顯示方法,其特征在于,所述步驟C具體為: Cl、服務端的顯示線程獲取各客戶端虛擬覆蓋圖層的信息,計算每個虛擬覆蓋圖層需要刷新的區(qū)域,并根據計算結果創(chuàng)建DIB位圖; C2、創(chuàng)建覆蓋頁面的第一兼容設備描述表,將所創(chuàng)建的DIB位圖選入第一兼容設備描述表中; C3、將第一兼容設備描述表拷貝到物理頁面設備描述表中,通過更新物理頁面,將DIB位圖圖像顯示到屏幕上。
5.根據權利要求4所述的基于WindowsCE的多程序同時顯示方法,其特征在于,所述步驟A2具體為: A21、創(chuàng)建兼容各客戶端設備描述表的第二兼容設備描述表,并根據第二兼容設備描述表屬性創(chuàng)建DIB位圖; A22、將所創(chuàng)建的DIB位圖選入第二兼容設備描述表,并將各客戶端設備描述表拷貝到第二兼容設備描述表中; A23、將該包含DIB位圖的第二兼容設備描述表發(fā)送至驅動層。
6.一種基于Windows CE的多程序同時顯示系統,其特征在于,所述系統包括: 客戶端,用于向接口層發(fā)送虛擬覆蓋圖層申請,并向接口層發(fā)送需要顯示的數據; 接口層,用于接收各客戶端的虛擬覆蓋圖層申請,對各客戶端傳入的需要顯示的數據進行封裝,并將封裝后的數據發(fā)送至驅動層; 驅動層,用于接收接口層發(fā)送的封裝后的數據;服務端,用于獲取驅動層中的封裝后數據,并利用封裝后數據創(chuàng)建各客戶端的虛擬覆蓋圖層,以及根據各客戶端虛擬覆蓋圖層的信息合成復合覆蓋圖層的圖像,并將該圖像刷新到物理頁面進行 顯示。
【文檔編號】G06F3/01GK104020849SQ201410237168
【公開日】2014年9月3日 申請日期:2014年5月30日 優(yōu)先權日:2014年5月30日
【發(fā)明者】李丹, 鄧細秋 申請人:愛培科科技開發(fā)(深圳)有限公司