• <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 閱讀(5200) 評論(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
            亚洲va久久久噜噜噜久久天堂| 亚洲欧美久久久久9999| 久久国产高潮流白浆免费观看| 亚洲午夜久久久久妓女影院 | 国内精品久久久久久久久| 狠狠久久综合| 久久婷婷是五月综合色狠狠| av国内精品久久久久影院| 伊人久久大香线蕉无码麻豆| 久久久久亚洲AV无码观看| 亚洲国产精品综合久久一线| 久久天堂AV综合合色蜜桃网| 香蕉久久夜色精品国产尤物| 午夜欧美精品久久久久久久| 亚洲欧美精品伊人久久| 久久中文骚妇内射| 久久综合九色综合久99| 94久久国产乱子伦精品免费| 亚洲日韩中文无码久久| 久久er国产精品免费观看8| 久久久久久无码Av成人影院| 一本久久a久久精品综合香蕉 | 久久青青草原国产精品免费| 午夜精品久久久久久毛片| 国产成人精品久久综合| 久久国产成人| 精品国产一区二区三区久久久狼| 三级三级久久三级久久| 久久国产美女免费观看精品| 办公室久久精品| 99久久99久久久精品齐齐| AV无码久久久久不卡网站下载| 美女久久久久久| 免费精品久久久久久中文字幕 | 亚洲欧美成人久久综合中文网| 青青青青久久精品国产| 女人香蕉久久**毛片精品| 国产一区二区三区久久| 国产精品久久久天天影视香蕉| 97久久综合精品久久久综合| 亚洲AV无码久久|