專利名稱:一種文字渲染方法及裝置的制作方法
技術領域:
本發(fā)明屬于圖像處理領域,尤其涉及一種文字渲染方法及裝置。
背景技術:
在計算機中,有時為了顯示美觀或者凸顯某些文字,需要對文字進行渲染?,F(xiàn)有的Direct 3D (簡稱D3D)在渲染文字時,通常采用圖形設備接口(graphicaldevice interface,⑶I)的渲染方式。這種渲染方式比較慢,將會降低每秒顯示的巾貞數(shù)(frames per second, fps),在有大量文字需要繪制的情形下,低效的文字渲染勢必會拖累整體的渲染性能,影響用戶的良好體驗。
發(fā)明內容
本發(fā)明實施例提供了一種文字渲染方法,旨在解決現(xiàn)有的D3D在渲染文字時速度過慢的問題。本發(fā)明實施例是這樣實現(xiàn)的,一種文字渲染方法,所述方法包括下述步驟:在接收到文字渲染請求后,判斷所述文字渲染請求對應的紋理內存是否已創(chuàng)建,若未創(chuàng)建,則創(chuàng)建紋理內存和文字渲染的字符串鍵,并根據(jù)所述字符串鍵查找與其對應的紋理緩存表項;根據(jù)查找的紋理緩存表項將文字渲染請求對應的文字渲染到紋理,并將已渲染至紋理的文字存入創(chuàng)建的紋理內存;若已創(chuàng)建,則將紋理內存存儲的紋理渲染至屏幕上。本發(fā)明實施例的另一目的在于提供一種文字渲染裝置,所述裝置包括:判斷單元,用于在接收到文字渲染請求后,判斷所述文字渲染請求對應的紋理內存是否已創(chuàng)建;紋理緩存表項查找單元,用于在紋理內存未創(chuàng)建時,創(chuàng)建紋理內存和文字渲染的字符串鍵,并根據(jù)所述字符串鍵查找與其對應的紋理緩存表項;紋理獲取單元,用于根據(jù)查找的紋理緩存表項將文字渲染請求對應的文字渲染到紋理,并將已渲染至紋理的文字存入創(chuàng)建的紋理內存;紋理渲染單元,用于在紋理內存已創(chuàng)建時,將紋理內存存儲的紋理渲染至屏幕上。本發(fā)明實施例中,將文字渲染至紋理,再結合D3D技術將該紋理渲染至屏幕上。由于D3D使用硬件加速渲染紋理至屏幕上,因此即使在有大量文字需要繪制的情形下,也能夠保證fps保持在一個較高的水平,從而提高用戶的良好體驗。
圖1是本發(fā)明第一實施例提供的文字渲染方法的流程圖;圖2是本發(fā)明第二實施例提供的另一文字渲染方法的流程圖;圖3是本發(fā)明第三實施例提供的另一文字渲染方法的流程圖4是本發(fā)明第四實施例提供的另一文字渲染方法的流程圖;圖5是本發(fā)明第四實施例提供的文字渲染方法的應用例的流程圖;圖6是本發(fā)明第四實施例提供的文字渲染方法的應用例的另一流程圖;圖7是本發(fā)明第五實施例提供的文字渲染裝置的結構圖;圖8是本發(fā)明第五實施例提供的文字渲染裝置的結構圖。
具體實施例方式為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明實施例中,根據(jù)接收的文字渲染請求將文字渲染至紋理,再將該紋理渲染至屏幕上。本發(fā)明實施例提供了 一種:文字渲染方法及裝置。所述方法包括:在接收到文字渲染請求后,判斷所述文字渲染請求對應的紋理內存是否已創(chuàng)建,若未創(chuàng)建,則創(chuàng)建紋理內存和文字渲染的字符串鍵,并根據(jù)所述字符串鍵查找與其對應的紋理緩存表項;根據(jù)查找的紋理緩存表項將文字渲染請求對應的文字渲染到紋理,并將已渲染至紋理的文字存入創(chuàng)建的紋理內存;若已創(chuàng)建,則將紋理內存存儲的紋理渲染至屏幕上。所述裝置包括:判斷單元,用于在接收到文字渲染請求后,判斷所述文字渲染請求對應的紋理內存是否已創(chuàng)建;紋理緩存表項查找單元,用于在紋理內存未創(chuàng)建時,創(chuàng)建紋理內存和文字渲染的字符串鍵,并根據(jù)所述字符串鍵查找與其對應的紋理緩存表項;紋理獲取單元,用于根據(jù)查找的紋理緩存表項將文字渲染請求對應的文字渲染到紋理,并將已渲染至紋理的文字存入創(chuàng)建的紋理內存;紋理渲染單元,用于在紋理內存已創(chuàng)建時,將紋理內存存儲的紋理渲染至屏幕上。本發(fā)明實施例中,將文字渲染至紋理,再將該紋理渲染至屏幕上。由于D3D使用硬件加速渲染紋理至屏幕上,因此即使在有大量文字需要繪制的情形下,也能夠保證fps保持在一個較高的水平,從而提高用戶的良好體驗。為了說明本發(fā)明所述的技術方案,下面通過具體實施例來進行說明。實施例一:圖1不出了本發(fā)明第一實施例提供的一種文字渲染方法,本實施例提供的方法包括:步驟S11,在接收到文字渲染請求后,判斷該文字渲染請求對應的紋理內存是否已創(chuàng)建,若未創(chuàng)建,執(zhí)行步驟S12,若已創(chuàng)建,執(zhí)行步驟S14。在本實施例中,該紋理內存用于存儲已渲染至紋理的文字,創(chuàng)建的紋理內存的大小由文字渲染區(qū)域的大小決定。步驟S12,創(chuàng)建紋理內存和文字渲染的字符串鍵,并根據(jù)該字符串鍵查找與其對應的紋理緩存表項。
在本實施例中,文字渲染的字符串鍵由文字本身和繪制屬性共同構成,字符串鍵的生成是基于整體字符串的粗粒度方法,當然,該字符串鍵也可以基于單字的細粒度方法,此處不再贅述。其中繪制屬性包括文字的顏色、字體、畫刷粗細等。該字符串鍵與紋理緩存表項一一對應,根據(jù)確定的字符串鍵能夠在紋理緩存表項映射表中查找到其對應的紋理緩存表項。步驟S13,根據(jù)查找的紋理緩存表項將文字渲染請求對應的文字渲染到紋理,并將已渲染至紋理的文字存入創(chuàng)建的紋理內存。步驟S14,將紋理內存存儲的紋理渲染至屏幕上。本實施例中,D3D渲染紋理至屏幕上時,使用硬件加速,從而保證fps保持在一個比較高的水平。在本發(fā)明第一實施例中,首先將文字渲染至紋理,再將該紋理渲染至屏幕上。由于D3D使用硬件加速渲染紋理至屏幕上,因此即使在有大量文字需要繪制的情形下,也能夠保證fps保持在一個較高的水平,從而提高用戶的良好體驗。實施例二:圖2示出了本發(fā)明第二實施例提供的一種文字渲染方法,本實施例主要是在實施例一的基礎上增加了步驟S24,詳述如下:其中,步驟S21、步驟S22、步驟S23與實施例一的步驟S11、步驟S12、步驟S13相同,此處不再贅述。步驟S24,記錄該文字渲染請求對應的紋理屬性,該紋理屬性包括紋理內存的創(chuàng)建時間、對應的字符串鍵以及紋理緩存表項。在本實施例中,記錄文字渲染請求對應的紋理內存的創(chuàng)建時間、該文字渲染請求對應的字符串鍵以及紋理緩存表項等紋理屬性,以便下一次出現(xiàn)與本次文字渲染請求需要渲染的文字相同的文字時,直接調用本次渲染文字所采用的字符串鍵、紋理緩存表項渲染該相同的文字,從而在有效節(jié)約存儲空間的同時能夠達到快速渲染文字的目的。步驟S25與實施例一的步驟S14相同,此處不在贅述。實施例三:圖3示出了本發(fā)明第三實施例提供的一種文字渲染方法,本實施例主要是對實施例一的步驟S13進行更詳細的描述:其中,步驟S31、步驟S32與實施例一的步驟SI 1、步驟S12相同,此處不再贅述。步驟S33,判斷查找的紋理緩存表項是否存在,若不存在,執(zhí)行步驟S34,否則執(zhí)行步驟S35。本實施例中,根據(jù)字符串鍵在紋理緩存表項映射表中查找與該字符串鍵對應的紋理緩存表項后,判斷是否查找到所需的紋理緩存表項。步驟S34,創(chuàng)建相應的紋理緩存表項,并將創(chuàng)建的紋理緩存表項加入紋理緩存表項映射表,再返回步驟S33。本實施例中,如果在紋理緩存表項映射表中沒有查找到相應的紋理緩存表項,則創(chuàng)建紋理緩存表項,并加入到紋理緩存表項映射表中。步驟S35,在查找的紋理緩存表項存在時,根據(jù)查找的紋理緩存表項將文字渲染請求對應的文字渲染到紋理,并將已渲染至紋理的文字存入創(chuàng)建的紋理內存。
本實施例中,若紋理緩存表項映射表中存在所需的紋理緩存表項,則根據(jù)該紋理緩存表項將相應的文字渲染至紋理。由于在文字內容和繪制格式沒有改變時,除首次外,每次文字渲染都是由緩存的紋理渲染完成,因此渲染速度很快,能夠有效提高幀率。步驟S36,將紋理內存存儲的紋理渲染至屏幕上。實施例四:圖4示出了本發(fā)明第四實施例提供的一種文字渲染方法,本實施例主要是在實施例三的基礎上增加了步驟S44、步驟S45,詳述如下:步驟S41,在接收到文字渲染請求后,判斷該文字渲染請求對應的紋理內存是否已創(chuàng)建,若未創(chuàng)建,執(zhí)行步驟S42,若已創(chuàng)建,執(zhí)行步驟S48。步驟S42,創(chuàng)建紋理內存和文字渲染的字符串鍵,根據(jù)該字符串鍵查找與其對應的紋理緩存表項。步驟S43,判斷查找的紋理緩存表項是否存在,若不存在,執(zhí)行步驟S44,否則執(zhí)行步驟S46。步驟S44,判斷紋理緩存表項映射表的紋理緩存表項所占的緩存大小是否超過預設的緩存閾值,若超過,執(zhí)行步驟S45,否則,執(zhí)行步驟S46。步驟S45,刪除紋理緩存表項映射表中在預設時間段內被查找次數(shù)少于預設頻率閾值的紋理緩存表項,并執(zhí)行步驟S44。本實施例中,當紋理緩存表項映射表的紋理緩存表項所占的緩存大小超過預設的緩存閾值時,刪除在預設時間段內被查找次數(shù)少于預設頻率閾值的紋理緩存表項。其中,預設時間段可以為20秒、I分鐘等,預設頻率閾值可以為3次、5次等,此處不作限定。由于存儲的紋理緩存表項需要占用一定的內存空間,因此將最近使用較少的紋理緩存表項釋放出來能夠更有效地使用內存,并防止內存泄露。步驟S46,創(chuàng)建相應的紋理緩存表項,并將創(chuàng)建的紋理緩存表項加入紋理緩存表項映射表,再返回步驟S43。步驟S47,在查找的紋理緩存表項存在時,根據(jù)查找的紋理緩存表項將文字渲染請求對應的文字渲染到紋理,并將已渲染至紋理的文字存入創(chuàng)建的紋理內存。步驟S48,將紋理內存存儲的紋理渲染至屏幕上。進一步地,本發(fā)明的實施例一、實施例二、實施例三、實施例四可以作為一個整體,共同實現(xiàn)將文字渲染到紋理,進而從紋理渲染到屏幕的目的。為了更清楚地描述將文字渲染到紋理的過程,下面以一個具體應用例進行說明:首先封裝D3D的紋理的創(chuàng)建、渲染等操作,以實現(xiàn)文字渲染到紋理的目的。具體的,封裝名稱為D3DTeXtBuffer的類,在該類中包括了 D3D的紋理的創(chuàng)建、渲染等操作。當有文字渲染請求時,如果紋理內存還未創(chuàng)建,則D3DTeXtBuffer負責創(chuàng)建,并將文字渲染到紋理,然后再將紋理渲染到屏幕;而如果紋理內存已經創(chuàng)建,繪制文字時只需將紋理渲染至屏幕即可,簡單的流程示意圖如圖5所示。進一步地,對于文字內容相同,繪制樣式也相同的繪制請求,比如對字體、畫筆、畫刷等一致的繪制請求,采用同一個D3DTextBuffer對象實現(xiàn),為了跟蹤此對象的使用情況,我們創(chuàng)建了 D3DTextBufferWrapper結構,以記錄D3DTextBuffer對象的創(chuàng)建時間,字符串鍵、紋理緩存表項、最近使用時間,內存大小以及使用次數(shù)等。該D3DTextBufferWrapper結構如下所示:
struct D3DT extBufferWrapper{
D3DTextBuffer* pBuf;
INT nCreateTime;
INT nUsedTime;
INT nMemUse;
INT nUseCnt;
};針對上面的D3DTextBufferWrapper結構,使用紋理緩存表項映射表(map)來維護,該map的字符串鍵由文字本身以及繪制屬性共同構成。當有文字渲染請求時,根據(jù)該文字渲染請求所需的紋理內存大小創(chuàng)建紋理內存,然后創(chuàng)建文字渲染的字符串鍵,再根據(jù)該字符串鍵在map中查找,一旦找到已有紋理緩存表項存在,則可以直接渲染其紋理,否則,在紋理渲染之前需要先創(chuàng)建紋理緩存結構,并加入到紋理緩存表項。同時,在紋理緩存結構初始化以及紋理渲染結構之后,更新紋理緩存結構的各個域,以記錄跟蹤紋理對象的使用。由于紋理對象占一定的內存空間,如果文字渲染的請求持續(xù)發(fā)生,map中的紋理緩存表項將保持增長。為了有效地使用內存,并防止內存泄漏,我們使用最近最少使用算法(LeastRecently Used,LRU)的思路,來對紋理緩存結構進行管理。該管理主要是在文字渲染的創(chuàng)建紋理緩存結構這一步進行。當創(chuàng)建紋理緩存結構時,首先判斷已有紋理緩存的總大小是否已超過一個預設的緩存閾值,如果沒有超過,則直接將新創(chuàng)建的紋理緩存結構對象插入map。否則,我們需要將map中的某些紋理緩存表項移除,直到紋理緩存的總大小在預設的緩存閾值的一半以下。而決定哪些表項移除的依據(jù)則是紋理緩存結構本身保持的各種使用信息,基本的原則是,使用的次數(shù)越少,最近使用的時間越遠,則越被優(yōu)先移去,即當紋理緩存表項在預設時間段內被查找次數(shù)少于預設頻率閾值時,將被刪除,具體流程如圖6所示。實施例五:圖7示出了本發(fā)明第五實施例提供的文字渲染裝置的結構圖,該文字渲染裝置可以用于通過有線或者無線網絡連接服務器的各種信息處理終端,例如移動電話、口袋計算機(Pocket Personal Computer, PPC)、掌上電腦、計算機、筆記本電腦、個人數(shù)字助理(Personal Digital Assistant, PDA)等,可以是運行于這些終端內的軟件單元、硬件單元或者軟硬件相結合的單元,也可以作為獨立的掛件集成到這些終端中或者運行于這些終端的應用系統(tǒng)中,其中:在圖7中,文字渲染裝置包括判斷單元71、紋理緩存表項查找單元72、紋理獲取單元73、紋理渲染單元74,為了便于說明,僅示出了與本實施例相關的部分。判斷單元71,用于在接收到文字渲染請求后,判斷該文字渲染請求對應的紋理內存是否已創(chuàng)建。本實施例中,該紋理內存用于存儲已渲染至紋理的文字,創(chuàng)建的紋理內存的大小由文字渲染區(qū)域的大小決定。紋理緩存表項查找單元72,用于在紋理內存未創(chuàng)建時,創(chuàng)建紋理內存和文字渲染的字符串鍵,并根據(jù)該字符串鍵查找與其對應的紋理緩存表項。本實施例中,文字渲染的字符串鍵由文字本身和繪制屬性共同構成,字符串鍵的生成是基于整體字符串的粗粒度方法,當然,該字符串鍵也可以基于單字的細粒度方法,此處不再贅述。該文字渲染的字符串鍵與紋理緩存表項一一對應,根據(jù)確定的字符串鍵能夠在紋理緩存表項映射表中查找到其對應的紋理緩存表項。紋理獲取單元73,用于根據(jù)查找的紋理緩存表項將文字渲染請求對應的文字渲染到紋理,并將已渲染至紋理的文字存入創(chuàng)建的紋理內存。作為一優(yōu)選實施例,該紋理獲取單元73包括:紋理緩存表項判斷模塊731、紋理緩存表項創(chuàng)建模塊732、紋理存儲模塊733,具體結構如圖8所示。紋理緩存表項判斷模塊731,用于判斷查找的紋理緩存表項是否存在。紋理緩存表項創(chuàng)建模塊732,用于在查找的紋理緩存表項不存在時,創(chuàng)建相應的紋理緩存表項,并將創(chuàng)建的紋理緩存表項加入紋理緩存表項映射表。作為一優(yōu)選實施例,該紋理緩存表項創(chuàng)建模塊732包括:紋理緩存表項大小判斷模塊81、紋理緩存表項刪除模塊82、紋理緩存表項新建模塊83。紋理緩存表項大小判斷模塊81,用于在查找的紋理緩存表項不存在時,判斷紋理緩存表項映射表的紋理緩存表項所占的緩存大小是否超過預設的緩存閾值。紋理緩存表項刪除模塊82,用于在紋理緩存表項映射表的紋理緩存表項所占的緩存大小超過預設的緩存閾值時,刪除紋理緩存表項映射表中在預設時間段內被查找次數(shù)少于預設頻率閾值的紋理緩存表項,并在刪除紋理緩存表項后執(zhí)行紋理緩存表項大小判斷模塊。紋理緩存表項新建模塊83,用于在紋理緩存表項映射表的紋理緩存表項所占的緩存大小沒有超過預設的緩存閾值時,創(chuàng)建相應的紋理緩存表項,并將創(chuàng)建的紋理緩存表項加入紋理緩存表項映射表。紋理存儲模塊733,用于在查找的紋理緩存表項存在時,根據(jù)查找的紋理緩存表項將文字渲染請求對應的文字渲染到紋理,并將已渲染至紋理的文字存入創(chuàng)建的紋理內存。作為本發(fā)明一優(yōu)選實施例,該文字渲染裝置還包括紋理屬性記錄單元75。紋理屬性記錄單元75,用于記錄所述文字渲染請求對應的紋理屬性,所述紋理屬性包括紋理內存的創(chuàng)建時間、對應的字符串鍵以及紋理緩存表項。本實施例中,記錄文字渲染請求對應的紋理內存的創(chuàng)建時間、該文字渲染請求對應的字符串鍵以及紋理緩存表項等紋理屬性,以便下一次出現(xiàn)與本次文字渲染請求需要渲染的文字相同的文字時,直接調用本次渲染文字所采用的字符串鍵、紋理緩存表項渲染該相同的文字,從而在有效節(jié)約存儲空間的同時能夠達到快速渲染文字的目的。紋理渲染單元74,用于在紋理內存已創(chuàng)建時,將紋理內存存儲的紋理渲染至屏幕上。本實施例中,D3D渲染紋理至屏幕上時,使用硬件加速,從而保證fps保持在一個比較高的水平。在本發(fā)明實施例中,將文字渲染至紋理,再將該紋理渲染至屏幕上。由于D3D使用硬件加速渲染紋理至屏幕上,因此即使在有大量文字需要繪制的情形下,也能夠保證fps保持在一個較高的水平,從而提高用戶的良好體驗。 以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內。
權利要求
1.一種文字渲染方法,其特征在于,所述方法包括下述步驟: 在接收到文字渲染請求后,判斷所述文字渲染請求對應的紋理內存是否已創(chuàng)建,若未創(chuàng)建,則創(chuàng)建紋理內存和文字渲染的字符串鍵,并根據(jù)所述字符串鍵查找與其對應的紋理緩存表項; 根據(jù)查找的紋理緩存表項將文字渲染請求對應的文字渲染到紋理,并將已渲染至紋理的文字存入創(chuàng)建的紋理內存; 若已創(chuàng)建,則將紋理內存存儲的紋理渲染至屏幕上。
2.如權利要求1所述的方法,其特征在于,在所述根據(jù)查找的紋理緩存表項將文字渲染請求對應的文字渲染到紋理,并將已渲染至紋理的文字存入創(chuàng)建的紋理內存的步驟之后,進一步包括下述步驟: 記錄所述文字渲染請求對應的紋理屬性,所述紋理屬性包括紋理內存的創(chuàng)建時間、對應的字符串鍵以及紋理緩存表項。
3.如權利要求1所述的方法,其特征在于,所述根據(jù)查找的紋理緩存表項將文字渲染請求對應的文字渲染到紋理,并將已渲染至紋理的文字存入創(chuàng)建的紋理內存的步驟具體為: 判斷查找的紋理緩存表項是否存在; 在查找的紋理緩存表項不存在時,創(chuàng)建相應的紋理緩存表項,并將創(chuàng)建的紋理緩存表項加入紋理緩存表項映射表; 在查找的紋理緩存表項存在時,根據(jù)查找的紋理緩存表項將文字渲染請求對應的文字渲染到紋理,并將已渲染至紋理的文字存入創(chuàng)建的紋理內存。
4.如權利要求3所述的方法,其特征在于,所述在查找的紋理緩存表項不存在時,創(chuàng)建相應的紋理緩存表項,并將創(chuàng)建的紋理緩存表項加入紋理緩存表項映射表的步驟具體為: 在查找的紋理緩存表項不存在時,判斷紋理緩存表項映射表的紋理緩存表項所占的緩存大小是否超過預設的緩存閾值; 在紋理緩存表項映射表的紋理緩存表項所占的緩存大小超過預設的緩存閾值時,刪除紋理緩存表項映射表中在預設時間段內被查找次數(shù)少于預設頻率閾值的紋理緩存表項,并在刪除紋理緩存表項后返回所述判斷步驟,以判斷紋理緩存表項映射表所占的緩存大小是否超過預設的緩存閾值; 在紋理緩存表項映射表的紋理緩存表項所占的緩存大小沒有超過預設的緩存閾值時,創(chuàng)建相應的紋理緩存表項,并將創(chuàng)建的紋理緩存表項加入紋理緩存表項映射表。
5.一種文字渲染裝置,其特征在于,所述裝置包括: 判斷單元,用于在接收到文字渲染請求后,判斷所述文字渲染請求對應的紋理內存是否已創(chuàng)建; 紋理緩存表項查找單元,用于在紋理內存未創(chuàng)建時,創(chuàng)建紋理內存和文字渲染的字符串鍵,并根據(jù)所述字符串鍵查找與其對應的紋理緩存表項; 紋理獲取單元,用于根據(jù)查找的紋理緩存表項將文字渲染請求對應的文字渲染到紋理,并將已渲染至紋理的文字存入創(chuàng)建的紋理內存; 紋理渲染單元,用于在紋理內存已創(chuàng)建時,將紋理內存存儲的紋理渲染至屏幕上。
6.如權利要求5所述的裝置,其特征在于,所述裝置還包括:紋理屬性記錄單元,用于記錄所述文字渲染請求對應的紋理屬性,所述紋理屬性包括紋理內存的創(chuàng)建時間、對應的字符串鍵以及紋理緩存表項。
7.如權利要求5所述的裝置,其特征在于,所述紋理獲取單元包括: 紋理緩存表項判斷模塊,用于判斷查找的紋理緩存表項是否存在; 紋理緩存表項創(chuàng)建模塊,用于在查找的紋理緩存表項不存在時,創(chuàng)建相應的紋理緩存表項,并將創(chuàng)建的紋理緩存表項加入紋理緩存表項映射表; 紋理存儲模塊,用于在查找的紋理緩存表項存在時,根據(jù)查找的紋理緩存表項將文字渲染請求對應的文字渲染到紋理,并將已渲染至紋理的文字存入創(chuàng)建的紋理內存。
8.如權利要求7所述的裝置,其特征在于,所述紋理緩存表項創(chuàng)建模塊包括: 紋理緩存表項大小判斷模塊,用于在查找的紋理緩存表項不存在時,判斷紋理緩存表 項映射表的紋理緩存表項所占的緩存大小是否超過預設的緩存閾值; 紋理緩存表項刪除模塊,用于在紋理緩存表項映射表的紋理緩存表項所占的緩存大小超過預設的緩存閾值時,刪除紋理緩存表項映射表中在預設時間段內被查找次數(shù)少于預設頻率閾值的紋理緩存表項,并在刪除紋理緩存表項后執(zhí)行紋理緩存表項大小判斷模塊; 紋理緩存表項新建模塊,用于在紋理緩存表項映射表的紋理緩存表項所占的緩存大小沒有超過預設的緩存閾值時,創(chuàng)建相應的紋理緩存表項,并將創(chuàng)建的紋理緩存表項加入紋理緩存表項映射表。
全文摘要
本發(fā)明適用于圖像處理領域,提供了一種文字渲染方法及裝置,所述方法包括下述步驟在接收到文字渲染請求后,判斷該文字渲染請求對應的紋理內存是否已創(chuàng)建,若未創(chuàng)建,則創(chuàng)建紋理內存和文字渲染的字符串鍵,并根據(jù)該字符串鍵查找與其對應的紋理緩存表項;根據(jù)查找的紋理緩存表項將文字渲染請求對應的文字渲染到紋理,并將已渲染至紋理的文字存入創(chuàng)建的紋理內存;若已創(chuàng)建,則將紋理內存存儲的紋理渲染至屏幕上。本發(fā)明實施例通過將文字渲染至紋理,再將該紋理渲染至屏幕上。由于D3D使用硬件加速渲染紋理至屏幕上,因此能夠保證fps保持在一個較高的水平,從而提高用戶的良好體驗。
文檔編號G06T19/00GK103186919SQ20111044858
公開日2013年7月3日 申請日期2011年12月28日 優(yōu)先權日2011年12月28日
發(fā)明者高峰, 潘昱存, 王佳, 傅斌 申請人:騰訊科技(深圳)有限公司