專利名稱:一種實(shí)現(xiàn)跨平臺(tái)圖形庫(kù)的系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種信息技術(shù)領(lǐng)域,尤其涉及一種實(shí)現(xiàn)跨平臺(tái)圖形庫(kù)的系統(tǒng)及方法.
背景技術(shù):
在用編程語(yǔ)言工具開發(fā)跨平臺(tái)的應(yīng)用程序時(shí),經(jīng)常遇到應(yīng)用程序需要為不同的平臺(tái)編寫針對(duì)該平臺(tái)的代碼,最突出的代表便是編寫圖形用戶接口(簡(jiǎn)稱GUI)代碼。如果GUI需求一旦發(fā)生變化,所有平臺(tái)的相關(guān)代碼都需要做相應(yīng)的修改。這樣不僅耗時(shí)耗力,同時(shí)又容易出錯(cuò),代碼的管理也會(huì)受到影響,從此會(huì)降低開發(fā)效率。一種解決該問(wèn)題的方法是使用跨平臺(tái)的圖形庫(kù)接口來(lái)開發(fā)跨平臺(tái)的應(yīng)用程序,跨平臺(tái)圖形庫(kù)對(duì)開發(fā)者提供統(tǒng)一的編程接口,同時(shí)在具體實(shí)現(xiàn)上根據(jù)操作系統(tǒng)的不同從而進(jìn)行不同的實(shí)現(xiàn)。以C++為例,目前有很多以C++為開發(fā)語(yǔ)言的跨平臺(tái)圖形庫(kù),其中典型的代表有Qt 和wxWidget。Qt是跨平臺(tái)的C++類庫(kù),能夠在Windows、Linux等主流平臺(tái)上使用。Qt除了包含圖形庫(kù)之外,還提供了跨平臺(tái)的基礎(chǔ)庫(kù),如數(shù)組、堆?;蚓€程等。wxWidget也是針對(duì)不同平臺(tái)設(shè)計(jì)的圖形類庫(kù),wxffidget的設(shè)計(jì)和使用風(fēng)格與MFC相似,有所不同的便是wxWidget可以運(yùn)行在不同的系統(tǒng)平臺(tái)。無(wú)論是Qt還是wxWidget,其復(fù)雜程度高不適合運(yùn)用于資源有限的嵌入式設(shè)備。Trixul也是用C++編寫的跨平臺(tái)圖形庫(kù),Trixul采用了 Mozilla的JavaScript引擎技術(shù)將C++代碼與JavaScript代碼進(jìn)行融合,簡(jiǎn)化了圖形設(shè)計(jì)的復(fù)雜性。不足之處Trixul需要JS引擎支持方能實(shí)現(xiàn)交互,這在普通應(yīng)用程序設(shè)計(jì)中不是必須的。
發(fā)明內(nèi)容
本發(fā)明的目的是針對(duì)現(xiàn)有技術(shù)中跨平臺(tái)圖形庫(kù)不適用于嵌入式系統(tǒng)開發(fā)的不足,提出一種新的跨平臺(tái)圖形庫(kù),為使用該圖形庫(kù)的開發(fā)者提供一套完整且統(tǒng)一的開發(fā)接口,并適用于針對(duì)不同的系統(tǒng)平臺(tái),使得圖形庫(kù)能調(diào)用基于該平臺(tái)的原生圖形庫(kù)函數(shù)。為了達(dá)到上述發(fā)明目的,本發(fā)明提出了一種實(shí)現(xiàn)跨平臺(tái)圖形庫(kù)的系統(tǒng),所述系統(tǒng)是通過(guò)以下的技術(shù)方案實(shí)現(xiàn)的一種實(shí)現(xiàn)跨平臺(tái)圖形庫(kù)的系統(tǒng),所述系統(tǒng)包括平臺(tái)獨(dú)立層,用來(lái)為用戶提供開發(fā)接口 API函數(shù);平臺(tái)相關(guān)層,用來(lái)與所述平臺(tái)獨(dú)立層的所述API函數(shù)進(jìn)行對(duì)接,并與特定平臺(tái)的原生態(tài)圖形庫(kù)函數(shù)進(jìn)行交互。進(jìn)一步優(yōu)選地,所述平臺(tái)相關(guān)層具體包括API函數(shù)實(shí)現(xiàn)模塊,用來(lái)與所述平臺(tái)獨(dú)立層的相應(yīng)API函數(shù)進(jìn)行對(duì)接,實(shí)現(xiàn)API函數(shù)的調(diào)用功能;平臺(tái)通信模塊,用來(lái)與所述特定平臺(tái)的原生態(tài)圖形庫(kù)函數(shù)進(jìn)行交互,接收由原生態(tài)圖形庫(kù)控件反饋回來(lái)的信號(hào)和事件,為用戶實(shí)現(xiàn)API函數(shù)調(diào)用提供接口。為了實(shí)現(xiàn)前述發(fā)明目的,本發(fā)明實(shí)施例還提供了一種實(shí)現(xiàn)跨平臺(tái)圖形庫(kù)的方法,所述方法包括以下步驟
當(dāng)用戶進(jìn)行圖形開發(fā)的API函數(shù)調(diào)用時(shí),平臺(tái)獨(dú)立層提供一相應(yīng)API函數(shù)調(diào)用接Π ;平臺(tái)相關(guān)層根據(jù)所述API函數(shù)與平臺(tái)獨(dú)立層進(jìn)行對(duì)接,并與特定平臺(tái)的原生態(tài)圖形庫(kù)函數(shù)進(jìn)行交互。進(jìn)一步優(yōu)選地,所述平臺(tái)相關(guān)層根據(jù)所述API函數(shù)與平臺(tái)獨(dú)立層進(jìn)行對(duì)接,并與特定平臺(tái)的原生態(tài)圖形庫(kù)函數(shù)進(jìn)行交互具體包括平臺(tái)相關(guān)層與所述平臺(tái)獨(dú)立層的相應(yīng)API函數(shù)進(jìn)行對(duì)接,實(shí)現(xiàn)API函數(shù)的調(diào)用功倉(cāng)泛;平臺(tái)相關(guān)層與所述特定平臺(tái)的原生態(tài)圖形庫(kù)函數(shù)進(jìn)行交互,接收由原生態(tài)圖形庫(kù)控件反饋回來(lái)的信號(hào)和事件,為用戶實(shí)現(xiàn)API函數(shù)調(diào)用提供接口。與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例提出的跨平臺(tái)圖形庫(kù)的系統(tǒng)架構(gòu)分成平臺(tái)獨(dú)立層 和平臺(tái)相關(guān)層兩大部分。平臺(tái)獨(dú)立層中的代碼主要是為用戶提供的開發(fā)接口 這些接口是完整、獨(dú)立的,開發(fā)跨平臺(tái)應(yīng)用程序時(shí),開發(fā)者應(yīng)該調(diào)用該層中對(duì)應(yīng)的API函數(shù);平臺(tái)相關(guān)層的代碼主要用于與特定平臺(tái)的原生態(tài)圖形庫(kù)函數(shù)進(jìn)行交互。該層中的模塊一方面連接了平臺(tái)獨(dú)立層對(duì)應(yīng)的模塊,實(shí)現(xiàn)了這些模塊應(yīng)該實(shí)現(xiàn)的具體功能;另一方面,該層中的模塊連接了特定平臺(tái)原生態(tài)的圖形庫(kù),用作為平臺(tái)獨(dú)立層提供信息反饋的通道,使得特定平臺(tái)的圖形庫(kù)控件能夠向跨平臺(tái)圖形庫(kù)控件發(fā)送事件響應(yīng)。因此,本發(fā)明實(shí)施例的圖形庫(kù)系統(tǒng)十分輕量,適合嵌入式設(shè)備開發(fā)使用;同時(shí)擴(kuò)展方便,很容易添加新的系統(tǒng)平臺(tái)。
通過(guò)下面結(jié)合附圖對(duì)其示例性實(shí)施例進(jìn)行的描述,本發(fā)明上述特征和優(yōu)點(diǎn)將會(huì)變得更加清楚和容易理解。圖I為本發(fā)明實(shí)施例I 一種實(shí)現(xiàn)跨平臺(tái)圖形庫(kù)的系統(tǒng)組成示意圖;圖2為本發(fā)明實(shí)施例2另一種一種實(shí)現(xiàn)跨平臺(tái)圖形庫(kù)的系統(tǒng)組成示意圖;圖3為本發(fā)明實(shí)施例3跨平臺(tái)圖形庫(kù)實(shí)現(xiàn)一個(gè)跨平臺(tái)按鈕控件的主要結(jié)構(gòu)圖;圖4為本發(fā)明實(shí)施例3跨平臺(tái)圖形庫(kù)實(shí)現(xiàn)一個(gè)跨平臺(tái)按鈕控件的初始化圖;圖5為本發(fā)明實(shí)施例4跨平臺(tái)圖形庫(kù)實(shí)現(xiàn)一個(gè)跨平臺(tái)按鈕控件的平臺(tái)獨(dú)立層向平臺(tái)相關(guān)層的調(diào)用序列圖;圖6為本發(fā)明實(shí)施例5跨平臺(tái)圖形庫(kù)實(shí)現(xiàn)一個(gè)跨平臺(tái)按鈕控件的事件回調(diào)序列圖。
具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。如圖I所示,為本發(fā)明實(shí)施例I 一種實(shí)現(xiàn)跨平臺(tái)圖形庫(kù)的系統(tǒng)組成示意圖。一種實(shí)現(xiàn)跨平臺(tái)圖形庫(kù)的,所述系統(tǒng)包括平臺(tái)獨(dú)立層,用來(lái)為用戶提供開發(fā)接口 API函數(shù);平臺(tái)相關(guān)層,用來(lái)與所述平臺(tái)獨(dú)立層的所述API函數(shù)進(jìn)行對(duì)接,并與特定平臺(tái)的原生態(tài)圖形庫(kù)函數(shù)進(jìn)行交互。進(jìn)一步優(yōu)選地,所述平臺(tái)相關(guān)層具體包括
API函數(shù)實(shí)現(xiàn)模塊,用來(lái)與所述平臺(tái)獨(dú)立層的相應(yīng)API函數(shù)進(jìn)行對(duì)接,實(shí)現(xiàn)API函數(shù)的調(diào)用功能;平臺(tái)通信模塊,用來(lái)與所述特定平臺(tái)的原生態(tài)圖形庫(kù)函數(shù)進(jìn)行交互,接收由原生態(tài)圖形庫(kù)控件反饋回來(lái)的信號(hào)和事件,為用戶實(shí)現(xiàn)API函數(shù)調(diào)用提供接口。本發(fā)明實(shí)施例以實(shí)現(xiàn)Button控件為例,平臺(tái)獨(dú)立層中的Button是提供給用戶使用的跨平臺(tái)按鈕控件。該層中的Widget和Control也是跨平臺(tái)的控件,這里列出只是為了說(shuō)明Button和他們?cè)趫D形庫(kù)中的邏輯關(guān)系。通過(guò)Buttonlmpl接口,可在平臺(tái)相關(guān)層針對(duì)不同平臺(tái)進(jìn)行特定平臺(tái)的按鈕控件的實(shí)現(xiàn)(如上圖的WindowsButtonlmpl和GtkButtonlmpl);在接收事件響應(yīng)上,Button實(shí)現(xiàn)ButtonEventObserver接口,用于接收由原生態(tài)圖形庫(kù)控件反饋回來(lái)的信號(hào)和事件,為用戶實(shí)現(xiàn)事件回調(diào)提供接口。當(dāng)用戶初始化Button控件時(shí),跨平臺(tái)圖形庫(kù)請(qǐng)求特定的組件完成Button控件的創(chuàng)建。該組件會(huì)根據(jù)所處的特定平臺(tái),倉(cāng)Il建該平臺(tái)上的Buttonlmpl對(duì)象實(shí)例。
若用戶調(diào)用Button相關(guān)的函數(shù)(不妨設(shè)Windows平臺(tái)上的用戶調(diào)用Button控件的SetText方法),那么這個(gè)調(diào)用最終會(huì)被平臺(tái)特定的⑶I所執(zhí)行。具體過(guò)程是=Button調(diào)用Buttonlmpl中的SetText方法,由于C++繼承和多態(tài)的特性,這個(gè)調(diào)用會(huì)被平臺(tái)相關(guān)層的特定對(duì)象調(diào)用,這里是 WindowsButtonlmpl: : SetText。WindowsButtonlmpl 會(huì)進(jìn)一步將請(qǐng)求轉(zhuǎn)發(fā)給自身所含的原生態(tài)圖形庫(kù)控件(WinForm: :Button),調(diào)用該控件的SetText方法。經(jīng)過(guò)上述步驟,可實(shí)現(xiàn)平臺(tái)獨(dú)立層向平臺(tái)相關(guān)層的調(diào)用。下圖是這種調(diào)用的序列圖表
/Jn ο在信號(hào)的處理問(wèn)題上,主要通過(guò)CallbackHelper和輔助結(jié)構(gòu)完成把信號(hào)從平臺(tái)相關(guān)層向平臺(tái)獨(dú)立層的回送。在初始化控件時(shí),特定平臺(tái)的CallbackHelper會(huì)與原生態(tài)控件進(jìn)行關(guān)聯(lián),從而實(shí)現(xiàn)對(duì)原生態(tài)控件發(fā)出的信號(hào)進(jìn)行捕捉。當(dāng)系統(tǒng)原生態(tài)控件發(fā)出信號(hào)時(shí)(WinForm: :Button發(fā)出ButtonPressed信號(hào)),特定平臺(tái)的CallbackHelper對(duì)象將捕捉到該信號(hào),并調(diào)用自身的 OnButtonPressed 函數(shù)。OnButtonPressed 將調(diào)用 CallbackHelper指向的 WindowsButtonlmpl 對(duì)象的 HandleCommand 方法。在 HandleCo_and 中,WindowsButtonlmpl 將調(diào)用 ButtonEventSubject 的 NotifyButtonPressed 方法,該方法最終調(diào)用了 ButtonEventObserver 的 ButtonPressecL 由于 Button 實(shí)現(xiàn)了ButtonEventObserver,因此Button將接收到來(lái)自WinForm的信號(hào)消息,從而實(shí)現(xiàn)了消息從特定平臺(tái)向獨(dú)立平臺(tái)的發(fā)送。通過(guò)這種方式,用戶便能夠在平臺(tái)獨(dú)立層設(shè)計(jì)控件的事件響應(yīng),而不需要針對(duì)不同平臺(tái)進(jìn)行特定的實(shí)現(xiàn)。下圖是事件回調(diào)的序列圖表示。本發(fā)明實(shí)施例的實(shí)現(xiàn)跨平臺(tái)圖形庫(kù)的系統(tǒng)分成平臺(tái)獨(dú)立層和平臺(tái)相關(guān)層兩大部分。平臺(tái)獨(dú)立層中的代碼主要是為用戶提供的開發(fā)接口 這些接口是完整、獨(dú)立的,開發(fā)跨平臺(tái)應(yīng)用程序時(shí),開發(fā)者應(yīng)該調(diào)用該層中對(duì)應(yīng)的API函數(shù);平臺(tái)相關(guān)層的代碼主要用于與特定平臺(tái)的原生態(tài)圖形庫(kù)函數(shù)進(jìn)行交互。該層中的模塊一方面連接了平臺(tái)獨(dú)立層對(duì)應(yīng)的模塊,實(shí)現(xiàn)了這些模塊應(yīng)該實(shí)現(xiàn)的具體功能;另一方面,該層中的模塊連接了特定平臺(tái)原生態(tài)的圖形庫(kù),用作為平臺(tái)獨(dú)立層提供信息反饋的通道,使得特定平臺(tái)的圖形庫(kù)控件能夠向跨平臺(tái)圖形庫(kù)控件發(fā)送事件響應(yīng)。因此,本發(fā)明實(shí)施例的圖形庫(kù)系統(tǒng)十分輕量,適合嵌入式設(shè)備開發(fā)使用;同時(shí)擴(kuò)展方便,很容易添加新的系統(tǒng)平臺(tái)。所述設(shè)計(jì)方式結(jié)構(gòu)化好,同時(shí)在平臺(tái)擴(kuò)充問(wèn)題上,該實(shí)施方式具有很好的可擴(kuò)展性。只需要添加平臺(tái)相關(guān)層的模塊,便能在新的系統(tǒng)平臺(tái)上實(shí)現(xiàn)特定的圖形庫(kù)控件。由于新添加的模塊屬于整體框架中的一部分,因此可以減少開發(fā)者的開發(fā)負(fù)擔(dān)。如圖4所示,本發(fā)明實(shí)施例4為本發(fā)明一種實(shí)現(xiàn)跨平臺(tái)圖形庫(kù)的方法,所述方法包括以下步驟當(dāng)用戶進(jìn)行圖形開發(fā)的API函數(shù)調(diào)用時(shí),平臺(tái)獨(dú)立層提供一相應(yīng)API函數(shù)調(diào)用接Π ;平臺(tái)相關(guān)層根據(jù)所述API函數(shù)與平臺(tái)獨(dú)立層進(jìn)行對(duì)接,并與特定平臺(tái)的原生態(tài)圖形庫(kù)函數(shù)進(jìn)行交互。進(jìn)一步優(yōu)選地,所述平臺(tái)相關(guān)層根據(jù)所述API函數(shù)與平臺(tái)獨(dú)立層進(jìn)行對(duì)接,并與特定平臺(tái)的原生態(tài)圖形庫(kù)函數(shù)進(jìn)行交互具體包括 平臺(tái)相關(guān)層與所述平臺(tái)獨(dú)立層的相應(yīng)API函數(shù)進(jìn)行對(duì)接,實(shí)現(xiàn)API函數(shù)的調(diào)用功倉(cāng)泛;平臺(tái)相關(guān)層與所述特定平臺(tái)的原生態(tài)圖形庫(kù)函數(shù)進(jìn)行交互,接收由原生態(tài)圖形庫(kù)控件反饋回來(lái)的信號(hào)和事件,為用戶實(shí)現(xiàn)API函數(shù)調(diào)用提供接口。本發(fā)明實(shí)施例以實(shí)現(xiàn)Button控件為例,平臺(tái)獨(dú)立層中的Button是提供給用戶使用的跨平臺(tái)按鈕控件。該層中的Widget和Control也是跨平臺(tái)的控件,這里列出只是為了說(shuō)明Button和他們?cè)趫D形庫(kù)中的邏輯關(guān)系。通過(guò)Buttonlmpl接口,可在平臺(tái)相關(guān)層針對(duì)不同平臺(tái)進(jìn)行特定平臺(tái)的按鈕控件的實(shí)現(xiàn)(如上圖的WindowsButtonlmpl和GtkButtonlmpl);在接收事件響應(yīng)上,Button實(shí)現(xiàn)ButtonEventObserver接口,用于接收由原生態(tài)圖形庫(kù)控件反饋回來(lái)的信號(hào)和事件,為用戶實(shí)現(xiàn)事件回調(diào)提供接口。當(dāng)用戶初始化Button控件時(shí),跨平臺(tái)圖形庫(kù)請(qǐng)求特定的組件完成Button控件的創(chuàng)建。該組件會(huì)根據(jù)所處的特定平臺(tái),倉(cāng)Il建該平臺(tái)上的Buttonlmpl對(duì)象實(shí)例。若用戶調(diào)用Button相關(guān)的函數(shù)(不妨設(shè)Windows平臺(tái)上的用戶調(diào)用Button控件的SetText方法),那么這個(gè)調(diào)用最終會(huì)被平臺(tái)特定的⑶I所執(zhí)行。具體過(guò)程是=Button調(diào)用Buttonlmpl中的SetText方法,由于C++繼承和多態(tài)的特性,這個(gè)調(diào)用會(huì)被平臺(tái)相關(guān)層的特定對(duì)象調(diào)用,這里是 WindowsButtonlmpl: : SetText。WindowsButtonlmpl 會(huì)進(jìn)一步將請(qǐng)求轉(zhuǎn)發(fā)給自身所含的原生態(tài)圖形庫(kù)控件(WinForm: :Button),調(diào)用該控件的SetText方法。經(jīng)過(guò)上述步驟,可實(shí)現(xiàn)平臺(tái)獨(dú)立層向平臺(tái)相關(guān)層的調(diào)用。下圖是這種調(diào)用的序列圖表
/Jn ο在信號(hào)的處理問(wèn)題上,主要通過(guò)CallbackHelper和輔助結(jié)構(gòu)完成把信號(hào)從平臺(tái)相關(guān)層向平臺(tái)獨(dú)立層的回送。在初始化控件時(shí),特定平臺(tái)的CallbackHelper會(huì)與原生態(tài)控件進(jìn)行關(guān)聯(lián),從而實(shí)現(xiàn)對(duì)原生態(tài)控件發(fā)出的信號(hào)進(jìn)行捕捉。當(dāng)系統(tǒng)原生態(tài)控件發(fā)出信號(hào)時(shí)(WinForm: :Button發(fā)出ButtonPressed信號(hào)),特定平臺(tái)的CallbackHelper對(duì)象將捕捉到該信號(hào),并調(diào)用自身的 OnButtonPressed 函數(shù)。OnButtonPressed 將調(diào)用 CallbackHelper指向的 WindowsButtonlmpl 對(duì)象的 HandleCommand 方法。在 HandleCo_and 中,WindowsButtonlmpl 將調(diào)用 ButtonEventSubject 的 NotifyButtonPressed 方法,該方法最終調(diào)用了 ButtonEventObserver 的 ButtonPressed。由于 Button 實(shí)現(xiàn)了ButtonEventObserver,因此Button將接收到來(lái)自WinForm的信號(hào)消息,從而實(shí)現(xiàn)了消息從特定平臺(tái)向獨(dú)立平臺(tái)的發(fā)送。通過(guò)這種方式,用戶便能夠在平臺(tái)獨(dú)立層設(shè)計(jì)控件的事件響應(yīng),而不需要針對(duì)不同平臺(tái)進(jìn)行特定的實(shí)現(xiàn)。下圖是事件回調(diào)的序列圖表示。本發(fā)明實(shí)施例的實(shí)現(xiàn)跨平臺(tái)圖形庫(kù)的方法,將圖形API函數(shù)的調(diào)用實(shí)現(xiàn)由平臺(tái)獨(dú)立層和平臺(tái)相關(guān)層分別完成。平臺(tái)獨(dú)立層中的代碼主要是為用戶提供的開發(fā)接口 這些接口是完整、獨(dú)立的,開發(fā)跨平臺(tái)應(yīng)用程序時(shí),開發(fā)者應(yīng)該調(diào)用該層中對(duì)應(yīng)的API函數(shù);平臺(tái)相關(guān)層的代碼主要用于與特定平臺(tái)的原生態(tài)圖形庫(kù)函數(shù)進(jìn)行交互。該層中的模塊一方面連接了平臺(tái)獨(dú)立層對(duì)應(yīng)的模塊,實(shí)現(xiàn)了這些模塊應(yīng)該實(shí)現(xiàn)的具體功能;另一方面,該層中的模塊連接了特定平臺(tái)原生態(tài)的圖形庫(kù),用作為平臺(tái)獨(dú)立層提供信息反饋的通道,使得特定平臺(tái)的圖形庫(kù)控件能夠向跨平臺(tái)圖形庫(kù)控件發(fā)送事件響應(yīng)。因此,本發(fā)明實(shí)施例的圖形庫(kù)系統(tǒng)十分輕量,適合嵌入式設(shè)備開發(fā)使用;同時(shí)擴(kuò)展方便,很容易添加新的系統(tǒng)平臺(tái)。所述設(shè)計(jì)方式結(jié)構(gòu)化好,同時(shí)在平臺(tái)擴(kuò)充問(wèn)題上,該實(shí)施方式具有很好的可擴(kuò)展性。只需要添加平臺(tái)相關(guān)層的模塊,便能在新的系統(tǒng)平臺(tái)上實(shí)現(xiàn)特定的圖形庫(kù)控件。由于新添加的模塊屬于整體框架中的一部分,因此可以減少開發(fā)者的開發(fā)負(fù)擔(dān)。需要注意的是,以上內(nèi)容是結(jié)合具體的實(shí)施方式對(duì)本發(fā)明所作的進(jìn)一步詳細(xì)說(shuō)明,不能認(rèn)定本發(fā)明的具體實(shí)施方式
僅限于此,在本發(fā)明的上述指導(dǎo)下,本領(lǐng)域技術(shù)人員可 以在上述實(shí)施例的基礎(chǔ)上進(jìn)行各種改進(jìn)和變形,而這些改進(jìn)或者變形落在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種實(shí)現(xiàn)跨平臺(tái)圖形庫(kù)的系統(tǒng),其特征在于,所述系統(tǒng)包括 平臺(tái)獨(dú)立層,用來(lái)為用戶提供開發(fā)接口 API函數(shù); 平臺(tái)相關(guān)層,用來(lái)與所述平臺(tái)獨(dú)立層的所述API函數(shù)進(jìn)行對(duì)接,并與特定平臺(tái)的原生態(tài)圖形庫(kù)函數(shù)進(jìn)行交互。
2.根據(jù)權(quán)利要求I所述的系統(tǒng),其特征在于,所述平臺(tái)相關(guān)層具體包括 API函數(shù)實(shí)現(xiàn)模塊,用來(lái)與所述平臺(tái)獨(dú)立層的相應(yīng)API函數(shù)進(jìn)行對(duì)接,實(shí)現(xiàn)API函數(shù)的調(diào)用功能; 平臺(tái)通信模塊,用來(lái)與所述特定平臺(tái)的原生態(tài)圖形庫(kù)函數(shù)進(jìn)行交互,接收由原生態(tài)圖形庫(kù)控件反饋回來(lái)的信號(hào)和事件,為用戶實(shí)現(xiàn)API函數(shù)調(diào)用提供接口。
3.一種實(shí)現(xiàn)跨平臺(tái)圖形庫(kù)的方法,其特征在于,所述方法包括 當(dāng)用戶進(jìn)行圖形開發(fā)的API函數(shù)調(diào)用時(shí),平臺(tái)獨(dú)立層提供一相應(yīng)API函數(shù)調(diào)用接口 ; 平臺(tái)相關(guān)層根據(jù)所述API函數(shù)與平臺(tái)獨(dú)立層進(jìn)行對(duì)接,并與特定平臺(tái)的原生態(tài)圖形庫(kù)函數(shù)進(jìn)行交互。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述平臺(tái)相關(guān)層根據(jù)所述API函數(shù)與平臺(tái)獨(dú)立層進(jìn)行對(duì)接,并與特定平臺(tái)的原生態(tài)圖形庫(kù)函數(shù)進(jìn)行交互具體包括 平臺(tái)相關(guān)層與所述平臺(tái)獨(dú)立層的相應(yīng)API函數(shù)進(jìn)行對(duì)接,實(shí)現(xiàn)API函數(shù)的調(diào)用功能; 平臺(tái)相關(guān)層與所述特定平臺(tái)的原生態(tài)圖形庫(kù)函數(shù)進(jìn)行交互,接收由原生態(tài)圖形庫(kù)控件反饋回來(lái)的信號(hào)和事件,為用戶實(shí)現(xiàn)API函數(shù)調(diào)用提供接口。
全文摘要
本發(fā)明公開了一種實(shí)現(xiàn)跨平臺(tái)圖形庫(kù)的系統(tǒng)及方法,用于信息技術(shù)領(lǐng)域,以針對(duì)現(xiàn)有技術(shù)中跨平臺(tái)圖形庫(kù)不適用于嵌入式系統(tǒng)開發(fā)的不足,提出一種新的跨平臺(tái)圖形庫(kù),為使用該圖形庫(kù)的開發(fā)者提供一套完整且統(tǒng)一的開發(fā)接口,并適用于針對(duì)不同的系統(tǒng)平臺(tái),使得圖形庫(kù)能調(diào)用基于該平臺(tái)的原生圖形庫(kù)函數(shù)。所述系統(tǒng)包括平臺(tái)獨(dú)立層,用來(lái)為用戶提供開發(fā)接口API函數(shù);平臺(tái)相關(guān)層,用來(lái)與所述平臺(tái)獨(dú)立層的所述API函數(shù)進(jìn)行對(duì)接,并與特定平臺(tái)的原生態(tài)圖形庫(kù)函數(shù)進(jìn)行交互。本發(fā)明實(shí)施例的圖形庫(kù)系統(tǒng)十分輕量,適合嵌入式設(shè)備開發(fā)使用;同時(shí)擴(kuò)展方便,很容易添加新的系統(tǒng)平臺(tái)。
文檔編號(hào)G06F17/30GK102799581SQ201110133570
公開日2012年11月28日 申請(qǐng)日期2011年5月23日 優(yōu)先權(quán)日2011年5月23日
發(fā)明者蔣昌俊, 陳閎中, 閆春鋼, 方鈺, 張棟良, 陳凱, 白星振 申請(qǐng)人:同濟(jì)大學(xué)