專利名稱:一種三維字體顯示方法以及相關(guān)裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式圖形顯示領(lǐng)域,尤其涉及一種三維字體顯示方法以及相關(guān)裝置。
背景技術(shù):
字體顯示技術(shù)是目前電子顯示設(shè)備領(lǐng)域的一項(xiàng)重要技術(shù)。字體的顯示需要處理字 體類別、文字代碼、文字尺寸等文字信息,再根據(jù)這些文字信息生成文字圖像;文字圖像是 根據(jù)作為表示文字外形的矢量數(shù)據(jù)生成的字體輪廓。具體而言,在顯示設(shè)備顯示文字圖像 時(shí),使用上述字體輪廓的矢量數(shù)據(jù)對(duì)所需要顯示的字體輪廓進(jìn)行顏色的填充,從而生成文 字圖像。隨著各種便攜式設(shè)備的不斷發(fā)展,字體顯示技術(shù)在便攜式設(shè)備的應(yīng)用也變得越來 越重要,具體該如何使用嵌入式技術(shù),使得字體顯示能在便攜式設(shè)備中有效的實(shí)現(xiàn),是我們 所要解決的一個(gè)問題。在現(xiàn)有技術(shù)中,嵌入式設(shè)備領(lǐng)域?qū)ψ煮w的支持都是通過圖形用戶界面(GUI, Graphical User Interface)來實(shí)現(xiàn)。一般分為三個(gè)步驟1、調(diào)用應(yīng)用程序編程接口(API, Application Programming hterface)載入字體引擎,根據(jù)給定的字體類別等參數(shù)去載 入字體庫(kù);2、獲取字體,確定字符編碼,然后根據(jù)字符編碼到對(duì)應(yīng)的字體庫(kù)中尋找相應(yīng)的字 形;3、在指定的位置繪制字體的位圖數(shù)據(jù)。由于現(xiàn)在技術(shù)是基于⑶I提供的API來實(shí)現(xiàn)文字顯示的,而⑶I的實(shí)現(xiàn)需要經(jīng)過 多層的函數(shù)調(diào)用,故處理的效率低下;而且現(xiàn)在技術(shù)從步驟1的載入字體到步驟3的繪制字 體都是以單任務(wù)的形式順序執(zhí)行的,當(dāng)顯示內(nèi)容較多時(shí),顯示字體的速度比較緩慢。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種三維字體顯示方法以及相關(guān)裝置,用于使用嵌入式系統(tǒng) 的開放圖形庫(kù)(OpenGL ES, OpenGL for Embedded Systems)進(jìn)行并行的字體顯示處理。本發(fā)明提供的三維字體顯示方法,包括三維字體顯示裝置創(chuàng)建前臺(tái)進(jìn)程和后臺(tái) 進(jìn)程;所述前臺(tái)進(jìn)程用于獲取輸入的文字信息,并進(jìn)行嵌入式系統(tǒng)的開放圖形庫(kù)OpenGL ES 的初始化;所述后臺(tái)進(jìn)程用于進(jìn)行字體庫(kù)的初始化,并根據(jù)所述前臺(tái)進(jìn)程的指示執(zhí)行相應(yīng) 的操作;三維字體顯示裝置使用所述前臺(tái)進(jìn)程進(jìn)行OpenGL ES的初始化,通過所述后臺(tái)進(jìn) 程進(jìn)行字體庫(kù)的初始化;三維字體顯示裝置使用所述前臺(tái)進(jìn)程和所述后臺(tái)進(jìn)程的數(shù)據(jù)交 互,使用OpenGL ES對(duì)所述輸入的文字信息進(jìn)行渲染。本發(fā)明提供的三維字體顯示裝置,包括創(chuàng)建單元,用于創(chuàng)建前臺(tái)進(jìn)程和后臺(tái)進(jìn) 程;初始化單元,用于使用所述前臺(tái)進(jìn)程和所述后臺(tái)進(jìn)程分別進(jìn)行嵌入式系統(tǒng)的開放圖形 庫(kù)OpenGL ES的初始化,以及字體庫(kù)的初始化;渲染單元,用于使用所述前臺(tái)進(jìn)程和所述后 臺(tái)進(jìn)程的數(shù)據(jù)交互,使用OpenGL ES對(duì)輸入的文字信息進(jìn)行渲染。從以上技術(shù)方案可以看出,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn)本發(fā)明使用OpenGL ES進(jìn)行字體的顯示,可以直接調(diào)用OpenGL ES的圖庫(kù),提高了執(zhí)行的效率;并且通過創(chuàng)建前臺(tái) 進(jìn)程和后臺(tái)進(jìn)程,使得OpenGL ES的初始化以及字體庫(kù)的初始化可以并行操作,節(jié)省了順序 加載的等待時(shí)間,進(jìn)一步提高了處理的效率。
圖1是本發(fā)明實(shí)施例中三維字體顯示方法的一個(gè)流程示意圖;圖2是本發(fā)明實(shí)施例中三維字體顯示方法的另一個(gè)流程示意圖;圖3是本發(fā)明實(shí)施例中三維字體顯示裝置的邏輯結(jié)構(gòu)示意圖。
具體實(shí)施例方式本發(fā)明實(shí)施例提供了一種三維字體顯示方法以及相關(guān)裝置,用于使用OpenGL ES 進(jìn)行并行的字體顯示處理。請(qǐng)參閱圖1,本發(fā)明實(shí)施例中三維字體顯示方法的一個(gè)實(shí)施例包括101、創(chuàng)建前臺(tái)進(jìn)程和后臺(tái)進(jìn)程;當(dāng)需要進(jìn)行字體顯示時(shí),三維字體顯示裝置同時(shí)創(chuàng)建前臺(tái)進(jìn)程和后臺(tái)進(jìn)程;前臺(tái) 進(jìn)程用于獲取輸入的文字信息,并進(jìn)行嵌入式系統(tǒng)的開放圖形庫(kù)OpenGL ES的初始化;后 臺(tái)進(jìn)程用于進(jìn)行字體庫(kù)的初始化,并根據(jù)該前臺(tái)進(jìn)程的指示執(zhí)行相應(yīng)的操作。同時(shí)創(chuàng)建兩個(gè)進(jìn)程進(jìn)行字體顯示可以合理地進(jìn)行功能模塊的負(fù)荷均攤,使得用戶 界面的設(shè)置操作和后臺(tái)的執(zhí)行操作可以同時(shí)進(jìn)行,有效地提高了字體顯示的處理效率。102、進(jìn)行相關(guān)信息的初始化;三維字體顯示裝置通過該前臺(tái)進(jìn)程進(jìn)行嵌入式系統(tǒng)的開放圖形庫(kù)(OpenGL ES, OpenGL for Embedded Systems)的初始化,以及通過后臺(tái)進(jìn)程進(jìn)行字體庫(kù)的初始化。OpenGL ES是一個(gè)平臺(tái)中立的圖形庫(kù),在OpenGL ES能夠工作之前,需要與一個(gè) 實(shí)際的窗口系統(tǒng)進(jìn)行關(guān)聯(lián),且初始化OpenGL ES標(biāo)準(zhǔn)的嵌入式底層鏈接(EGL,Embedded Ground Link)函數(shù)。EGL為OpenGL ES和本地平臺(tái)視窗系統(tǒng)之間的接口。103、渲染文字信息。三維字體顯示裝置通過該前臺(tái)進(jìn)程和該后臺(tái)進(jìn)程的數(shù)據(jù)交互,使用OpenGL ES對(duì) 輸入的文字信息進(jìn)行渲染。在進(jìn)行完OpenGL ES的初始化以及字體庫(kù)的初始化以后,前臺(tái)進(jìn)程就可以獲取輸 入的文字信息,該輸入的文字信息可以是用戶通過輸入設(shè)備輸入的,也可以是別的終端設(shè) 備傳輸過來的,或通過通信網(wǎng)絡(luò)下載的,具體根據(jù)該三維字體顯示裝置的應(yīng)用領(lǐng)域而定,具 體此處不作限定。這些文字信息可以包括文字內(nèi)容、字體樣式和文字大小等。前臺(tái)進(jìn)程獲取到該文字信息以后,將該文字信息發(fā)送給后臺(tái)進(jìn)程進(jìn)行相應(yīng)的處 理,然后后臺(tái)進(jìn)程再將處理的結(jié)果返回給前臺(tái)進(jìn)程,使得前臺(tái)進(jìn)程使用OpenGL ES對(duì)該文字 信息進(jìn)行顯示。本發(fā)明使用OpenGL ES進(jìn)行字體的顯示,可以直接調(diào)用OpenGL ES的圖庫(kù),提高了 執(zhí)行的效率;并且通過創(chuàng)建前臺(tái)進(jìn)程和后臺(tái)進(jìn)程,使得OpenGL ES的初始化以及字體庫(kù)的 初始化可以并行操作,節(jié)省了順序加載的等待時(shí)間,進(jìn)一步提高了處理的效率。下面對(duì)本發(fā)明的初始化過程,以及前臺(tái)進(jìn)程和后臺(tái)進(jìn)程之間的交互進(jìn)行具體描述,請(qǐng)參閱圖2,本發(fā)明實(shí)施例中三維字體顯示方法的一個(gè)實(shí)施例包括201、創(chuàng)建前臺(tái)進(jìn)程和后臺(tái)進(jìn)程;本實(shí)施例中的步驟201的內(nèi)容與前述圖1所示的實(shí)施例中步驟101的內(nèi)容相同, 此處不再贅述。202、進(jìn)行相關(guān)信息的初始化;三維字體顯示裝置通過前臺(tái)進(jìn)程進(jìn)行OpenGL ES的初始化,OpenGL ES的初始化 過程可以為一、關(guān)聯(lián)顯示設(shè)備;前臺(tái)進(jìn)程調(diào)用相關(guān)顯示設(shè)備的函數(shù),設(shè)置該函數(shù)的相關(guān)參數(shù) (一般為系統(tǒng)默認(rèn)值),則需要顯示的文字內(nèi)容會(huì)在該顯示設(shè)備中顯示;二、初始化EGL函數(shù);前臺(tái)進(jìn)程調(diào)用EGL的初始化函數(shù),確定EGL的版本號(hào),并鏈接 EGL函數(shù)庫(kù);三、選擇EGL函數(shù)的參數(shù)配置;前臺(tái)進(jìn)程在該EGL函數(shù)庫(kù)中選擇與本地嵌入式設(shè)備 匹配的參數(shù)配置,該參數(shù)配置中包含有眾多的屬性,這些屬性決定了 OpenGL ES的格式和能 力,這些屬性可以通過EGL配置函數(shù)來讀??;四、構(gòu)造顯示界面;前臺(tái)進(jìn)程通過EGL窗口函數(shù)來構(gòu)造文字內(nèi)容的實(shí)際顯示界面;五、創(chuàng)建狀態(tài)環(huán)境;OpenGL ES具有當(dāng)前的顏色、紋理坐標(biāo)、變換矩陣、渲染模式等 眾多狀態(tài),前臺(tái)進(jìn)程根據(jù)顯示需求,通過EGL環(huán)境函數(shù)來創(chuàng)建這些狀態(tài),這些狀態(tài)作用于點(diǎn) 陣坐標(biāo)系,從而在顯示設(shè)備的幀緩沖區(qū)內(nèi)形成所需要顯示的像素。三維字體顯示裝置通過后臺(tái)進(jìn)程進(jìn)行字體庫(kù)的初始化,字體庫(kù)的初始化可以為 后臺(tái)進(jìn)程建立與前臺(tái)進(jìn)程的數(shù)據(jù)傳輸通道,使得后臺(tái)進(jìn)程的操作關(guān)聯(lián)前臺(tái)進(jìn)程,并創(chuàng)建字 體庫(kù)的對(duì)象,完成字體庫(kù)的初始化。203、獲取輸入的文字信息;三維字體顯示裝置的前臺(tái)進(jìn)程獲取輸入的文字信息,并向該后臺(tái)進(jìn)程發(fā)送該文字 fn息ο該輸入的文字信息可以是用戶通過輸入設(shè)備輸入的,也可以是別的終端設(shè)備傳輸 過來的,或通過通信網(wǎng)絡(luò)下載的,具體根據(jù)該三維字體顯示裝置的應(yīng)用領(lǐng)域而定,具體此處 不作限定。這些文字信息可以包括文字內(nèi)容、字體樣式、文字大小以及字體顏色等。204、根據(jù)文字信息生成位圖;三維字體顯示裝置的后臺(tái)進(jìn)程獲取前臺(tái)進(jìn)程發(fā)送的該文字信息,將該文字信息加 載到步驟202中所創(chuàng)建的字體庫(kù)中,并進(jìn)行搜索。文字信息的搜索過程即為文字內(nèi)容的編碼映射過程,文字內(nèi)容中的每個(gè)字符在 字庫(kù)中都有相應(yīng)的編碼,后臺(tái)進(jìn)程根據(jù)那些字符與編碼的映射關(guān)系,搜索到該文字內(nèi)容項(xiàng) 對(duì)應(yīng)的字模,后臺(tái)進(jìn)程再根據(jù)該字模裝載字體樣式和文字大小,并將裝載后的字模生成位 圖;位圖由是像素點(diǎn)組成的,這些像素點(diǎn)可以進(jìn)行不同的排列以構(gòu)成圖樣。205、將位圖轉(zhuǎn)換成紋理數(shù)據(jù);三維字體顯示裝置的后臺(tái)進(jìn)程將該文字信息所生成的位圖轉(zhuǎn)換成紋理數(shù)據(jù),同時(shí) 根據(jù)文字信息中的字體顏色設(shè)置紋理數(shù)據(jù)的顯示顏色,將處理完后的紋理數(shù)據(jù)發(fā)送給前臺(tái) 進(jìn)程。
在OpenGL ES中,位圖需要轉(zhuǎn)換成紋理數(shù)據(jù)才能在OpenGL ES中進(jìn)行顯示處理;紋 理數(shù)據(jù)可以包括紋理坐標(biāo)和紋理函數(shù);該紋理數(shù)據(jù)的顯示顏色包括字體顏色和字體背 景的顏色。206、渲染以及顯示文字信息。三維字體顯示裝置的前臺(tái)進(jìn)程獲取該紋理數(shù)據(jù),根據(jù)該紋理數(shù)據(jù)計(jì)算該文字信息 的顯示輪廓,并使用步驟205得到的字體顏色和字體背景的顏色對(duì)該顯示輪廓進(jìn)行渲染。在本發(fā)明中,由于前臺(tái)進(jìn)程和后臺(tái)進(jìn)程的操作是相互獨(dú)立,在切換顯示內(nèi)容時(shí),后 臺(tái)進(jìn)程因?yàn)橐呀?jīng)對(duì)字體庫(kù)進(jìn)行了初始化,無需重復(fù)進(jìn)行字體庫(kù)的導(dǎo)入操作,只需前臺(tái)進(jìn)程 進(jìn)行相應(yīng)的獲取輸入文字信息的操作就可以完成字體的顯示,相對(duì)于現(xiàn)有技術(shù)在每次進(jìn)行 顯示時(shí)都要重復(fù)的導(dǎo)入資源,本發(fā)明顯然提高了字體顯示的效率。上面僅以一些例子對(duì)本發(fā)明實(shí)施例中的應(yīng)用場(chǎng)景進(jìn)行了說明,可以理解的是,在 實(shí)際應(yīng)用中,還可以有更多的應(yīng)用場(chǎng)景,具體此處不作限定。下面對(duì)用于執(zhí)行上述三維字體顯示方法的本發(fā)明三維字體顯示裝置進(jìn)行說明,其 邏輯結(jié)構(gòu)請(qǐng)參考圖3,本發(fā)明實(shí)施例中的三維字體顯示裝置一個(gè)實(shí)施例包括創(chuàng)建單元301,用于創(chuàng)建前臺(tái)進(jìn)程和后臺(tái)進(jìn)程;初始化單元302,用于通過該前臺(tái)進(jìn)程和該后臺(tái)進(jìn)程分別進(jìn)行嵌入式系統(tǒng)的開放 圖形庫(kù)OpenGL ES的初始化,以及字體庫(kù)的初始化;渲染單元303,用于通過該前臺(tái)進(jìn)程和該后臺(tái)進(jìn)程的數(shù)據(jù)交互,使用OpenGL ES對(duì) 輸入的文字信息進(jìn)行渲染。本發(fā)明實(shí)施例中的初始化單元302可以包括前臺(tái)初始化模塊3021,用于通過該前臺(tái)進(jìn)程進(jìn)行OpenGL ES的初始化;后臺(tái)初始化模塊3022,用于通過該后臺(tái)進(jìn)程創(chuàng)建字庫(kù)對(duì)象,進(jìn)行字體庫(kù)的初始化。本發(fā)明實(shí)施例中的渲染單元303可以包括獲取模塊3031,用于使用該前臺(tái)進(jìn)程獲取輸入的文字信息,并向該后臺(tái)進(jìn)程發(fā)送 該文字信息;文字處理模塊3032,用于使用該后臺(tái)進(jìn)程加載該文字信息,并在該字體庫(kù)內(nèi)搜索 該文字信息,將該文字信息轉(zhuǎn)化為位圖;生成模塊3033,用于使用該后臺(tái)進(jìn)程根據(jù)該位圖生成相應(yīng)的紋理數(shù)據(jù),并向該前 臺(tái)進(jìn)程發(fā)送該紋理數(shù)據(jù);文字渲染模塊3034,用于使用該前臺(tái)進(jìn)程根據(jù)該紋理數(shù)據(jù)在顯示設(shè)備上確定顯示 輪廓,并使用OpenGL ES對(duì)該顯示輪廓進(jìn)行渲染。本發(fā)明實(shí)施例中的渲染單元303可以進(jìn)一步包括顏色設(shè)置模塊3035,用于使用該后臺(tái)進(jìn)程設(shè)置該文字信息的顯示顏色,并向該前 臺(tái)進(jìn)程發(fā)送該的顯示顏色。本發(fā)明實(shí)施例三維字體顯示裝置中各個(gè)單元具體的交互過程如下當(dāng)需要進(jìn)行字體顯示時(shí),創(chuàng)建單元301同時(shí)創(chuàng)建前臺(tái)進(jìn)程和后臺(tái)進(jìn)程;該前臺(tái)進(jìn) 程用于處理用戶界面的相關(guān)信息,該后臺(tái)進(jìn)程則負(fù)責(zé)執(zhí)行該前臺(tái)進(jìn)程中所設(shè)置的需求,加 載相關(guān)信息。當(dāng)創(chuàng)建單元301執(zhí)行了操作后,初始化單元302通過該前臺(tái)進(jìn)程和該后臺(tái)進(jìn)程分
7別進(jìn)行嵌入式系統(tǒng)的開放圖形庫(kù)OpenGL ES的初始化,以及字體庫(kù)的初始化。具體可以為 初始化單元302的前臺(tái)初始化模塊3021首先調(diào)用相關(guān)顯示設(shè)備的函數(shù),設(shè)置該函數(shù)的相關(guān) 參數(shù);其次,調(diào)用EGL的初始化函數(shù),確定EGL的版本號(hào),并鏈接EGL函數(shù)庫(kù),在該EGL函數(shù) 庫(kù)中選擇與本地嵌入式設(shè)備匹配的參數(shù)配置,該參數(shù)配置中包含有眾多的屬性,這些屬性 決定了 OpenGL ES的格式和能力,這些屬性可以通過EGL配置函數(shù)來讀??;完成EGL函數(shù)的 初始化和參數(shù)配置后,通過EGL窗口函數(shù)來構(gòu)造文字內(nèi)容的實(shí)際顯示界面;最后,進(jìn)程根據(jù) 顯示需求,通過EGL環(huán)境函數(shù)來創(chuàng)建這些狀態(tài),這些狀態(tài)作用于點(diǎn)陣坐標(biāo)系,從而在顯示設(shè) 備的幀緩沖區(qū)內(nèi)形成所需要顯示的像素。前臺(tái)初始化模塊3021在前臺(tái)工作的同時(shí),后臺(tái)初 始化模塊3022建立與前臺(tái)進(jìn)程的數(shù)據(jù)傳輸通道,使得后臺(tái)進(jìn)程的操作關(guān)聯(lián)前臺(tái)進(jìn)程,并創(chuàng) 建字庫(kù)對(duì)象,完成字體庫(kù)的初始化。初始化相關(guān)的信息后,渲染單元303通過該前臺(tái)進(jìn)程和該后臺(tái)進(jìn)程的數(shù)據(jù)交互, 使用OpenGL ES對(duì)輸入的文字信息進(jìn)行渲染。具體可以為獲取模塊3031通過前臺(tái)進(jìn)程獲 取輸入的文字信息,并向該后臺(tái)進(jìn)程發(fā)送該文字信息。然后,文字處理模塊3032通過后臺(tái) 進(jìn)程獲取前臺(tái)進(jìn)程發(fā)送的該文字信息,將該文字信息加載到字體庫(kù)中,并進(jìn)行搜索。文字信 息的搜索過程即為文字內(nèi)容的編碼映射過程,文字內(nèi)容中的每個(gè)字符在字庫(kù)中都有相應(yīng)的 編碼,后臺(tái)進(jìn)程根據(jù)那些字符與編碼的映射關(guān)系,搜索到該文字內(nèi)容項(xiàng)對(duì)應(yīng)的字模,后臺(tái)進(jìn) 程再根據(jù)該字模裝載字體樣式和文字大小,并將裝載后的字模生成位圖,生成模塊3033則 通過后臺(tái)進(jìn)程根據(jù)該位圖生成相應(yīng)的紋理數(shù)據(jù),生成紋理數(shù)據(jù)的同時(shí),顏色設(shè)置模塊3035 通過可以后臺(tái)進(jìn)程在該紋理數(shù)據(jù)設(shè)置該文字信息的顯示顏色,并向該前臺(tái)進(jìn)程發(fā)送該紋理 數(shù)據(jù)。最后,文字渲染模塊3034通過前臺(tái)進(jìn)程獲取該紋理數(shù)據(jù),根據(jù)該紋理數(shù)據(jù)計(jì)算該文 字信息的顯示輪廓,并使用顏色設(shè)置模塊3035得到的顯示顏色對(duì)該顯示輪廓進(jìn)行渲染。在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以 通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的 劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件 可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或 討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦 合或通信連接,可以是電性,機(jī)械或其它的形式。所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯 示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè) 網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目 的。另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以 是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單 元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。本領(lǐng)域普通技術(shù)人 員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件 完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只 讀存儲(chǔ)器,磁盤或光盤等。以上對(duì)本發(fā)明所提供的一種三維字體顯示方法以及相關(guān)裝置進(jìn)行了詳細(xì)介紹,對(duì) 于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明實(shí)施例的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
1.一種三維字體顯示方法,其特征在于,包括三維字體顯示裝置創(chuàng)建前臺(tái)進(jìn)程和后臺(tái)進(jìn)程;所述前臺(tái)進(jìn)程用于獲取輸入的文字信 息,并進(jìn)行嵌入式系統(tǒng)的開放圖形庫(kù)OpenGL ES的初始化;所述后臺(tái)進(jìn)程用于進(jìn)行字體庫(kù) 的初始化,并根據(jù)所述前臺(tái)進(jìn)程的指示執(zhí)行相應(yīng)的操作;三維字體顯示裝置使用所述前臺(tái)進(jìn)程進(jìn)行OpenGL ES的初始化,使用所述后臺(tái)進(jìn)程進(jìn) 行字體庫(kù)的初始化;三維字體顯示裝置使用所述前臺(tái)進(jìn)程和所述后臺(tái)進(jìn)程的數(shù)據(jù)交互,使用OpenGL ES對(duì) 所述輸入的文字信息進(jìn)行渲染。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述使用前臺(tái)進(jìn)程進(jìn)行嵌入式系統(tǒng)的開 放圖形庫(kù)OpenGL ES的初始化,使用所述后臺(tái)進(jìn)程進(jìn)行字體庫(kù)的初始化包括三維字體顯示裝置使用所述前臺(tái)進(jìn)程關(guān)聯(lián)顯示設(shè)備,初始化OpenGL ES標(biāo)準(zhǔn)的函數(shù),選 擇所述函數(shù)的參數(shù)配置,構(gòu)造顯示界面,以及創(chuàng)建狀態(tài)環(huán)境;三維字體顯示裝置使用所述后臺(tái)進(jìn)程關(guān)聯(lián)所述前臺(tái)進(jìn)程,創(chuàng)建字體庫(kù)的對(duì)象。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述使用前臺(tái)進(jìn)程和所述后臺(tái)進(jìn)程的 數(shù)據(jù)交互,使用OpenGL ES對(duì)輸入的文字信息進(jìn)行渲染包括三維字體顯示裝置使用所述前臺(tái)進(jìn)程獲取輸入的文字信息,并向所述后臺(tái)進(jìn)程發(fā)送所 述文字信息;三維字體顯示裝置使用所述后臺(tái)進(jìn)程加載所述文字信息,并在所述字體庫(kù)內(nèi)搜索所述 文字信息,將所述文字信息轉(zhuǎn)化為位圖;三維字體顯示裝置使用所述后臺(tái)進(jìn)程根據(jù)所述位圖生成相應(yīng)的紋理數(shù)據(jù),并向所述前 臺(tái)進(jìn)程發(fā)送所述紋理數(shù)據(jù);三維字體顯示裝置使用所述前臺(tái)進(jìn)程根據(jù)所述紋理數(shù)據(jù)在顯示設(shè)備上確定顯示輪廓, 并使用OpenGL ES對(duì)所述顯示輪廓進(jìn)行渲染。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述后臺(tái)進(jìn)程根據(jù)所述位圖生成相應(yīng)的 紋理數(shù)據(jù)之后包括三維字體顯示裝置使用所述后臺(tái)進(jìn)程設(shè)置所述文字信息的顯示顏色,并向所述前臺(tái)進(jìn) 程發(fā)送所述的顯示顏色;三維字體顯示裝置使用所述前臺(tái)進(jìn)程使用OpenGL ES對(duì)所述具體輪廓進(jìn)行渲染包括 三維字體顯示裝置使用所述前臺(tái)進(jìn)程根據(jù)所述顯示顏色使用OpenGL ES對(duì)所述具體輪 廓進(jìn)行渲染。
5.一種三維字體顯示裝置,其特征在于,包括 創(chuàng)建單元,用于創(chuàng)建前臺(tái)進(jìn)程和后臺(tái)進(jìn)程;初始化單元,用于使用所述前臺(tái)進(jìn)程和所述后臺(tái)進(jìn)程分別進(jìn)行嵌入式系統(tǒng)的開放圖形 庫(kù)OpenGL ES的初始化,以及字體庫(kù)的初始化;渲染單元,用于使用所述前臺(tái)進(jìn)程和所述后臺(tái)進(jìn)程的數(shù)據(jù)交互,使用OpenGL ES對(duì)輸入 的文字信息進(jìn)行渲染。
6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述初始化單元包括 前臺(tái)初始化模塊,用于使用所述前臺(tái)進(jìn)程進(jìn)行OpenGL ES的初始化;后臺(tái)初始化模塊,用于使用所述后臺(tái)進(jìn)程創(chuàng)建字庫(kù)對(duì)象,進(jìn)行字體庫(kù)的初始化。
7.根據(jù)權(quán)利要求5或6所述的裝置,其特征在于,所述渲染單元包括獲取模塊,用于使用所述前臺(tái)進(jìn)程獲取輸入的文字信息,并向所述后臺(tái)進(jìn)程發(fā)送所述 文字信息;文字處理模塊,用于使用所述后臺(tái)進(jìn)程加載所述文字信息,并在所述字體庫(kù)內(nèi)搜索所 述文字信息,將所述文字信息轉(zhuǎn)化為位圖;生成模塊,用于使用所述后臺(tái)進(jìn)程根據(jù)所述位圖生成相應(yīng)的紋理數(shù)據(jù),并向所述前臺(tái) 進(jìn)程發(fā)送所述紋理數(shù)據(jù);文字渲染模塊,用于使用所述前臺(tái)進(jìn)程根據(jù)所述紋理數(shù)據(jù)在顯示設(shè)備上確定顯示輪 廓,并使用OpenGL ES對(duì)所述顯示輪廓進(jìn)行渲染。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述渲染單元還包括顏色設(shè)置模塊,用于使用所述后臺(tái)進(jìn)程設(shè)置所述文字信息的顯示顏色,并向所述前臺(tái) 進(jìn)程發(fā)送所述的顯示顏色;所述文字渲染模塊還用于,使用所述前臺(tái)進(jìn)程根據(jù)所述顯示顏色使用OpenGL ES對(duì)所 述具體輪廓進(jìn)行渲染。
全文摘要
本發(fā)明實(shí)施例公開了一種三維字體顯示方法以及相關(guān)裝置,用于使用OpenGL ES進(jìn)行并行的字體顯示處理。本發(fā)明實(shí)施例方法包括三維字體顯示裝置創(chuàng)建前臺(tái)進(jìn)程和后臺(tái)進(jìn)程;使用所述前臺(tái)進(jìn)程進(jìn)行嵌入式系統(tǒng)的開放圖形庫(kù)OpenGL ES的初始化,使用所述后臺(tái)進(jìn)程進(jìn)行字體庫(kù)的初始化;使用所述前臺(tái)進(jìn)程和所述后臺(tái)進(jìn)程的數(shù)據(jù)交互,使用OpenGL ES對(duì)輸入的文字信息進(jìn)行渲染。此外,本發(fā)明還提供了實(shí)現(xiàn)該方法的相關(guān)裝置。
文檔編號(hào)G09G5/24GK102122502SQ20111006203
公開日2011年7月13日 申請(qǐng)日期2011年3月15日 優(yōu)先權(quán)日2011年3月15日
發(fā)明者張偉勝, 施明剛, 鄧珂曦 申請(qǐng)人:深圳芯邦科技股份有限公司