• <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 閱讀(5199) 評論(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
            精品无码久久久久国产动漫3d| 国产91色综合久久免费| 国产精品免费久久久久电影网| 久久人人爽爽爽人久久久| 久久久久久国产精品美女| 精品久久久久久成人AV| 成人妇女免费播放久久久| 久久高清一级毛片| 久久久久亚洲精品天堂久久久久久 | 国产精品九九久久免费视频 | 一本色综合久久| 四虎久久影院| 国产69精品久久久久观看软件| 久久久久久久综合狠狠综合| 狠狠色丁香久久婷婷综合_中| 久久国产精品成人片免费| 好属妞这里只有精品久久| 日本道色综合久久影院| 久久九九久精品国产免费直播| 午夜视频久久久久一区 | 中文字幕久久精品 | 久久夜色撩人精品国产小说| 久久人人爽人人爽人人片AV不 | 国产ww久久久久久久久久| 99久久夜色精品国产网站| 久久精品人人做人人爽电影蜜月| 久久久久99精品成人片| 成人久久精品一区二区三区| 国产一区二区久久久| 国产精久久一区二区三区| 久久久一本精品99久久精品66| 一本综合久久国产二区| 精品久久人人爽天天玩人人妻| 久久国产高潮流白浆免费观看| 伊人久久一区二区三区无码| 国产精品免费久久久久电影网| 国产精品99久久99久久久| 伊人久久无码中文字幕| 无码国内精品久久人妻麻豆按摩| 亚洲国产精品久久久久网站| 伊人色综合九久久天天蜜桃|