• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            l

            成都手游碼農一枚
            隨筆 - 32, 文章 - 0, 評論 - 117, 引用 - 0
            數據加載中……

            [cocos2d-x] RichText 雜記三。

            上一篇博客嘗試性在cocos2d-x中使用freetype,由于項目進度,近期沒怎么研究,苦逼加班族。現在稍微閑下來了在小談一下這個話題。

            這幾天稍微閑了下,于是打算把freetype集成到公司項目中,這里先總結下,代碼不能上傳,因為在公司沒權限- -!

            1.上一篇文章中的的描邊其實有兩處內存泄漏, Get_Glayph后沒有調用Done_Glayph。
            2.文字渲染可以glTexSubImage2D函數來替換,也可以一次性通過Rgb數據生成紋理,注意要設置紋理幾個參數,否則拉伸了可能會出現模糊不清,而且初始化創建紋理時應該填充為透明色。同事要注意這個函數,如果你的x+w大于整個紋理寬度是會報錯的,文字也就不見了,要小心。
            3.android 加載字體可以直接加載,不需要從內存中讀取,因為系統字體目錄是可以直接訪問讀取的。
            4.字體緩存我的實現方法是利用FTC_Manager的前提下將每個字母的RGB數據緩存,下次渲染如果發現效果大小一樣的舊直接返回不再去讀取,要注意的是FTC_Mananger_LookupSize 函數返回的FT_Size結構,所以不能通過它來索引緩存,而應該用實際字體Size,還有就是FT_Size在使用前一定要確保是最新的哦,這里東西是不能長時間保留的,也就是說查找一次用一次。
            5.注意android紋理限制,2048*2048,所以對于很長的文本要注意了。
            6.為了兼容以前的一些代碼,現在我是直接將CCLabellTTF的實現替換了,所以同時要注意兩個布局參數,調整好了后你會發現在PC端使用android系統字體的話整體效果應該是和在android上一樣,這樣就很方便在PC端查看效果了,美術也就方便不少了。

            暫且就想到了這些,整體來說目前測試出的效果目前運行的還算比較流暢的。

            posted on 2013-12-06 18:26 l1989 閱讀(5215) 評論(7)  編輯 收藏 引用 所屬分類: C++游戲

            評論

            # re: [cocos2d-x] RichText 雜記三。  回復  更多評論   

            你好,請問一下你的freetype是怎樣編譯過的啊
            2013-12-07 17:37 | Damein

            # re: [cocos2d-x] RichText 雜記三。  回復  更多評論   

            目前我使用cocos2d-x已經編譯好的freetype庫能顯示了,但排版還是不懂,博主能指導一下嗎
            2013-12-09 19:31 | Damein

            # re: [cocos2d-x] RichText 雜記三。[未登錄]  回復  更多評論   

            @Damein
            編譯那塊我也是用的已經編譯好的

            字體排版freetype文檔中有例子,主要是一些排版參數,富文本排版可以通過一個字一個字的組合,字的大小是已經知道的,可以先把大小、顏色一樣的字集合到一起組成一個長串,長度寬度也是可以計算出來的,然后再將這些串來進行排版,主要是換行。
            2013-12-10 09:19 | azl

            # re: [cocos2d-x] RichText 雜記三。  回復  更多評論   

            https://github.com/happykevins/cocos2dx-ext

            這個人已經做出來了
            2013-12-17 16:50 | h

            # re: [cocos2d-x] RichText 雜記三。[未登錄]  回復  更多評論   

            我遇到下面的情況:
            setDesignResolutionSize設置為1024*768
            實際手機窗口的分辨率是1280*720
            這種情況下我的freetype實現方案文字會出現模糊
            引擎原生的cclabelttf就不會出現這個問題
            請問這種情況你們遇到嗎?怎么解決的?
            2013-12-31 17:13 | whier

            # re: [cocos2d-x] RichText 雜記三。[未登錄]  回復  更多評論   

            @whier
            起初我的做法是直接通過RGB數據生成紋理貼圖,也出現了你說的這種情況。
            后來我是通過預先創建好紋理,在通過glTexSubImage2D來修改紋理數據,問題就解決了。估計應該是紋理設置之類參數造成的,你可以好好檢查下。
            2014-01-01 10:30 | azl

            # re: [cocos2d-x] RichText 雜記三。[未登錄]  回復  更多評論   

            多謝博主指點。
            知道原因了,適應多種屏幕分辨率,渲染文字時的頂點數據不是直接取紋理的寬高計算,而是需要根據content factor縮放下,保證渲染時,渲染區域和紋理大小一致,這樣就不會出現拉伸了
            樓上h提到的https://github.com/happykevins/cocos2dx-ext項目沒有自適應屏幕分辨率,需要對代碼進行一些改造才不會拉伸
            2014-01-02 11:25 | whier
            日本精品久久久久中文字幕| 久久人人添人人爽添人人片牛牛| 久久香蕉国产线看观看99| 久久被窝电影亚洲爽爽爽| 狠狠久久综合伊人不卡| 伊人久久久AV老熟妇色| 国产亚州精品女人久久久久久 | 97久久国产综合精品女不卡 | 亚洲国产精品婷婷久久| 久久强奷乱码老熟女网站| 人妻无码αv中文字幕久久| 99久久综合国产精品二区| 影音先锋女人AV鲁色资源网久久| 91性高湖久久久久| 日产精品久久久一区二区| 四虎影视久久久免费观看| 中文字幕亚洲综合久久| 国产精品一区二区久久不卡| 久久久久无码精品| 欧洲精品久久久av无码电影| 思思久久好好热精品国产| 久久国产三级无码一区二区| 国产精品18久久久久久vr | 久久九九亚洲精品| 久久人人妻人人爽人人爽| 手机看片久久高清国产日韩| 一本大道久久a久久精品综合| 久久久久亚洲AV成人网| 久久久91精品国产一区二区三区 | 人妻精品久久无码专区精东影业| 欧美精品福利视频一区二区三区久久久精品| 伊人久久大香线蕉综合Av | 国产麻豆精品久久一二三| 亚洲国产精品18久久久久久| 久久久久久久女国产乱让韩| 久久亚洲精品国产精品婷婷| 国产一区二区久久久| 中文字幕久久波多野结衣av| 欧美黑人又粗又大久久久| 99久久精品国产高清一区二区| 国产精品免费福利久久|