• <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
            久久天天躁狠狠躁夜夜avapp| 大香伊人久久精品一区二区| 欧美精品久久久久久久自慰| 久久精品国产亚洲一区二区| 久久久久国产一区二区| 7777精品久久久大香线蕉| 国产精品99久久99久久久| 久久精品国产福利国产琪琪| 久久精品国产亚洲AV无码麻豆| 国产伊人久久| 久久久久亚洲AV无码网站| 久久影视综合亚洲| 久久免费线看线看| 77777亚洲午夜久久多喷| 久久一区二区免费播放| 久久青草国产手机看片福利盒子| 国产精品久久久久久久app | 99久久亚洲综合精品网站| 久久亚洲sm情趣捆绑调教 | 久久精品国产91久久综合麻豆自制| 久久av高潮av无码av喷吹| 72种姿势欧美久久久久大黄蕉| 久久人人爽人人爽人人片AV麻烦| 国产精品99久久久久久宅男| av无码久久久久久不卡网站| 久久精品国产亚洲AV久| 青春久久| 国产精品久久久久久久人人看| 色婷婷狠狠久久综合五月| 久久精品国产精品亚洲下载| 久久美女人爽女人爽| 99久久精品国产综合一区| 免费国产99久久久香蕉| 婷婷久久综合九色综合98| 欧美亚洲国产精品久久蜜芽| 久久午夜电影网| 91精品国产91久久久久久蜜臀| 久久久久中文字幕| 99久久夜色精品国产网站| 久久久久久久综合日本| 国产成人综合久久精品红|