国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      減少動態(tài)漢字生成所需紋理內(nèi)存的方法

      文檔序號:6576020閱讀:260來源:國知局
      專利名稱:減少動態(tài)漢字生成所需紋理內(nèi)存的方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及漢字顯示技術(shù)領(lǐng)域,尤其涉及一種減少動態(tài)漢字生成所需紋 理內(nèi)存的方法。
      背景技術(shù)
      在現(xiàn)有的計算機平臺應(yīng)用中,經(jīng)常會有需要顯示大量動態(tài)漢字的情況, 例如在計算機或游戲機上運行的中文游戲中就需要動態(tài)顯示大量漢字。在現(xiàn) 有技術(shù)中,顯示這些漢字的時候,需要把這些漢字生成到紋理中,由于漢字 數(shù)量巨大,往往需要占用大量紋理內(nèi)存。對于可利用資源有限的圖形加速器 (顯卡)來說,紋理內(nèi)存的占用情況直接影響顯示的速度,漢字占用大量紋 理內(nèi)存提高了對顯存要求,并且讀取紋理貼圖所需的帶寬大大增加,從而拖 慢了顯示的速度。

      發(fā)明內(nèi)容
      因此,本發(fā)明的目的在于提供一種減少動態(tài)漢字生成所需紋理內(nèi)存的方 法,降低動態(tài)漢字顯示時對紋理內(nèi)存的需求。
      為實現(xiàn)上述目的,本發(fā)明提供一種減少動態(tài)漢字生成所需紋理內(nèi)存的方 法,包括步驟
      51、 生成待顯示漢字的點陣;
      52、 根據(jù)待顯示漢字的點陣生成待顯示漢字的圖片;
      53、 創(chuàng)建與所述待顯示漢字的圖片具有同樣尺寸的壓縮格式的紋理;
      54、 將所述待顯示漢字的圖片對應(yīng)填充到所述壓縮格式的紋理中;
      55、 保存步驟S4中所形成的待顯示漢字的壓縮格式的紋理。
      其中,所述壓縮格式為DDS格式。
      其中,所述圖片的顏色為黑、白兩色。
      3其中,所述點陣可為16xl6點陣或其它任何點陣。
      其中,所述圖片為位圖。
      其中,所述位圖為32位位圖。
      其中,所述壓縮格式為DXT1或DXT3。
      本發(fā)明采用壓縮紋理格式來減少動態(tài)漢字生成的內(nèi)存占用量,以實時的 速度將漢字圖片轉(zhuǎn)為壓縮格式紋理,從而降低動態(tài)漢字生成對紋理內(nèi)存的需 求,進而提高顯示速度。


      下面結(jié)合附圖,通過對本發(fā)明的具體實施方式
      詳細描述,將使本發(fā)明的 技術(shù)方案及其他有益效果顯而易見。 附圖中,
      圖1為本發(fā)明減少動態(tài)漢字生成所需紋理內(nèi)存的方法的流程圖; 圖2為本發(fā)明一較佳實施中所生成的待顯示漢字的圖片的示意圖。
      具體實施例方式
      如圖1所示,其為本發(fā)明減少動態(tài)漢字生成所需紋理內(nèi)存的方法的的流程

      步驟Sl、生成待顯示漢字的點陣;對于即時輸入的需要動態(tài)顯示的漢 字,在將漢字生成到紋理中的時候,其實只對漢字的每個像素是否顯示感興 趣,而漢字點陣中的每個點都代表一個像素,也就是說, 一個bit就能存儲漢 字的一個像素,例如, 一個采用16X16點陣的漢字,其所需要的存儲空間為 16X16/8等于32Byte,通過存儲待顯示漢字的點陣,即可確定待顯示漢字的 內(nèi)容、字體、分布等細節(jié);另外,本發(fā)明所采用的漢字點陣可為16X16點陣 或其他任何點陣;
      S2、根據(jù)待顯示漢字的點陣生成待顯示漢字的圖片;在將漢字點陣數(shù)據(jù) 保存為紋理時, 一般都是先把漢字點陣數(shù)據(jù)生成到一張圖片中;該圖片占據(jù) 一定內(nèi)存區(qū)域,可以容納所有待顯示漢字的圖片數(shù)據(jù),同時該圖片具有一定 的長寬尺寸,可以容納所有待顯示的漢字;該圖片可采用位圖的格式,例如 32位位圖;如圖2所示,其為本發(fā)明一較佳實施中所生成的待顯示漢字的圖片
      4的示意圖,該圖片的格式為黑白格式,通過黑、白的顏色區(qū)分來表示待顯示
      漢字;
      53、 創(chuàng)建與所述待顯示漢字的圖片具有同樣尺寸的壓縮格式的紋理;例 如采用目前硬件全部支持的DDS壓縮紋理格式,創(chuàng)建一 DDS格式的紋理圖 片,該紋理圖片的大小與待顯示漢字的圖片相符;DDS格式的全稱是 DirectDraw Surface,它是微軟提供的一種壓縮紋理格式,可確保紋理文件的 跨平臺使用,利用現(xiàn)有程序可將BMP、 TGA等文件轉(zhuǎn)化為DDS文件,具體 實施時,可具體選擇DDS格式中的DXT1或DXT3格式;
      54、 將所述待顯示漢字的圖片對應(yīng)填充到所述壓縮格式的紋理中;由于 DDS格式的紋理圖片與待顯示漢字的圖片大小相對應(yīng),從而可將待顯示漢字 的圖片的數(shù)據(jù)填充到DDS格式的紋理圖片中,由于待顯示漢字的圖片為黑白 色,其顏色數(shù)據(jù)要么為黑色(值為O),要么為白色(值為OxFFFFFFFF),從而其 能夠以實時的速度轉(zhuǎn)為DDS壓縮格式,從而形成待顯示漢字的DDS壓縮格 式的紋理圖片;在此,之所以沒有選擇直接動態(tài)將待顯示漢字的圖片轉(zhuǎn)為 DDS格式,是因為以現(xiàn)有的條件從圖片格式到DDS格式的轉(zhuǎn)化需要較長的 時間,所以本發(fā)明采用了數(shù)據(jù)填充的方式來實現(xiàn)實時的轉(zhuǎn)化。
      55、 保存步驟S4中所形成的待顯示漢字的壓縮格式的紋理,用于動態(tài) 生成漢字;由于現(xiàn)有硬件都支持DDS格式的紋理圖片,從而在同等條件下( 相同的漢字點陣),可以把待顯示漢字的紋理圖片壓縮為原來的1/8或者1/4 (根據(jù)具體所采用的DXT1或DXT3格式的壓縮比),并且無其它任何限制, 相應(yīng)的紋理內(nèi)存的需求也降低到原來的1/8或者1/4。
      下面就整個過程,結(jié)合本發(fā)明一較佳實施例來進行說明,如圖2所示, 該較佳實施例在游戲中要顯示漢字"版權(quán)所有2009年保留所有權(quán)利。",其 在Windows平臺上來實現(xiàn),通過調(diào)用Windows API(Application Programming Interface,應(yīng)用程序編程接口)來實現(xiàn)具體功能
      1、 創(chuàng)建一塊32位位圖內(nèi)存區(qū)域,可以容納上述所有漢字的位圖數(shù)據(jù);
      2、 調(diào)用CreateFontAPI創(chuàng)建指定大小的字體點陣;
      3、 調(diào)用ExtTextOut API將所需漢字點陣數(shù)據(jù)以32位位圖格式保存到內(nèi) 存中,最終內(nèi)存中的32位圖片如圖2所示;4、 調(diào)用CreateTexture API創(chuàng)建和圖2中圖片同樣長寬的DXT1格式(或 其它DDS格式)的紋理;
      5、 將32位位圖數(shù)據(jù)填充到DXT1格式紋理中,在將32位位圖數(shù)據(jù)填充 到DXT1格式紋理中的時候,充分利用了 32位位圖數(shù)據(jù)中的顏色數(shù)據(jù)只存在 兩種可能,要么為黑色(值為0),要么為白色(為OxFFFFFFFF),以實時的速 度將32位位圖轉(zhuǎn)為DXT1壓縮格式,從而形成DXT1格式的漢字紋理圖片, 相應(yīng)減少了對紋理內(nèi)存的占用,填充4戈^^舉例如下
      DWORD* pSource;〃初始化為32 ^f立位圖格式數(shù)據(jù)起始位置 DWORD *pLine; WORD wValue; 匿i,j;
      WORD fpDest-(WORD"pBuffer;〃pBuffer初始化為指向DXTl紋理
      數(shù)據(jù)起始位置
      for(int h=0;h<m—iHeight;h+=4)〃 mjHeight為紋理高度 for(int w=0;w<m—iWidth;w+=4)〃m_iWidth為紋理寬度 pLine=pSource+w;
      、0681++=(^0;〃(^£^;〃充分利用字體圖片顏色要么為 全白,要么為全黑的特點
      *pDest++=0xffff; for(j=0;j<4;j+=2)
      wValue=0;
      for( i=0;i<4;i++)
      if(pLine[i]=0)
      wValue|=(3《(i+i》;wValue|=(l《(i+i));
      pLine+=m—iWidth; for(i=0;i<4;i++)
      if(pLine[i]==0)
      wValue|=(3《(i+i+8》;
      else
      wValue|=(l《(i+i+8));
      *pDest++=wValue; pLine+=m—iWidth;
      pSource+=4*m—i Width;
      綜上所述,本發(fā)明采用壓縮紋理格式來減少動態(tài)漢字生成的內(nèi)存占用 量,以實時的速度將漢字圖片轉(zhuǎn)為壓縮格式紋理,從而降低動態(tài)漢字生成對 紋理內(nèi)存的需求,進而提高顯示速度。
      以上所述,對于本領(lǐng)域的普通技術(shù)人員來說,可以根據(jù)本發(fā)明的技術(shù)方 案和技術(shù)構(gòu)思作出其他各種相應(yīng)的改變和變形,而所有這些改變和變形都應(yīng) 屬于本發(fā)明后附的權(quán)利要求的保護范圍。
      權(quán)利要求
      1、一種減少動態(tài)漢字生成所需紋理內(nèi)存的方法,其特征在于,包括步驟S1、生成待顯示漢字的點陣;S2、根據(jù)待顯示漢字的點陣生成待顯示漢字的圖片;S3、創(chuàng)建與所述待顯示漢字的圖片具有同樣尺寸的壓縮格式的紋理;S4、將所述待顯示漢字的圖片對應(yīng)填充到所述壓縮格式的紋理中;S5、保存步驟S4中所形成的待顯示漢字的壓縮格式的紋理。
      2、 如權(quán)利要求l所述的減少動態(tài)漢字生成所需紋理內(nèi)存的方法,其特征 在于,所述壓縮格式為DDS格式。
      3、 如權(quán)利要求l所述的減少動態(tài)漢字生成所需紋理內(nèi)存的方法,其特征 在于,所述圖片的顏色為黑、白兩色。
      4、 如權(quán)利要求l所述的減少動態(tài)漢字生成所需紋理內(nèi)存的方法,其特征 在于,所述圖片為位圖。
      5、 如權(quán)利要求4所述的減少動態(tài)漢字生成所需紋理內(nèi)存的方法,其特征 在于,所述位圖為32位位圖。
      6、 如權(quán)利要求2所述的減少動態(tài)漢字生成所需紋理內(nèi)存的方法,其特征 在于,所述壓縮格式為DXT1或DXT3。
      全文摘要
      一種減少動態(tài)漢字生成所需紋理內(nèi)存的方法,包括步驟S1.生成待顯示漢字的點陣;S2.根據(jù)待顯示漢字的點陣生成待顯示漢字的圖片;S3.創(chuàng)建與所述待顯示漢字的圖片具有同樣尺寸的壓縮格式的紋理;S4.將所述待顯示漢字的圖片對應(yīng)填充到所述壓縮格式的紋理中;S5.保存步驟S4中所形成的待顯示漢字的壓縮格式的紋理。本發(fā)明采用壓縮紋理格式來減少動態(tài)漢字生成的內(nèi)存占用量,以實時的速度將漢字圖片轉(zhuǎn)為壓縮格式紋理,從而降低動態(tài)漢字生成對紋理內(nèi)存的需求,進而提高顯示速度。
      文檔編號G06T11/00GK101499174SQ20091010509
      公開日2009年8月5日 申請日期2009年1月16日 優(yōu)先權(quán)日2009年1月16日
      發(fā)明者胡國平 申請人:深圳市中青寶網(wǎng)網(wǎng)絡(luò)科技股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1