[cocos2d-x] RichText 雜記三。
上一篇博客嘗試性在cocos2d-x中使用freetype,由于項(xiàng)目進(jìn)度,近期沒(méi)怎么研究,苦逼加班族?,F(xiàn)在稍微閑下來(lái)了在小談一下這個(gè)話(huà)題。
這幾天稍微閑了下,于是打算把freetype集成到公司項(xiàng)目中,這里先總結(jié)下,代碼不能上傳,因?yàn)樵诠緵](méi)權(quán)限- -!
1.上一篇文章中的的描邊其實(shí)有兩處內(nèi)存泄漏, Get_Glayph后沒(méi)有調(diào)用Done_Glayph。
2.文字渲染可以glTexSubImage2D函數(shù)來(lái)替換,也可以一次性通過(guò)Rgb數(shù)據(jù)生成紋理,注意要設(shè)置紋理幾個(gè)參數(shù),否則拉伸了可能會(huì)出現(xiàn)模糊不清,而且初始化創(chuàng)建紋理時(shí)應(yīng)該填充為透明色。同事要注意這個(gè)函數(shù),如果你的x+w大于整個(gè)紋理寬度是會(huì)報(bào)錯(cuò)的,文字也就不見(jiàn)了,要小心。
3.android 加載字體可以直接加載,不需要從內(nèi)存中讀取,因?yàn)橄到y(tǒng)字體目錄是可以直接訪(fǎng)問(wèn)讀取的。
4.字體緩存我的實(shí)現(xiàn)方法是利用FTC_Manager的前提下將每個(gè)字母的RGB數(shù)據(jù)緩存,下次渲染如果發(fā)現(xiàn)效果大小一樣的舊直接返回不再去讀取,要注意的是FTC_Mananger_LookupSize 函數(shù)返回的FT_Size結(jié)構(gòu),所以不能通過(guò)它來(lái)索引緩存,而應(yīng)該用實(shí)際字體Size,還有就是FT_Size在使用前一定要確保是最新的哦,這里東西是不能長(zhǎng)時(shí)間保留的,也就是說(shuō)查找一次用一次。
5.注意android紋理限制,2048*2048,所以對(duì)于很長(zhǎng)的文本要注意了。
6.為了兼容以前的一些代碼,現(xiàn)在我是直接將CCLabellTTF的實(shí)現(xiàn)替換了,所以同時(shí)要注意兩個(gè)布局參數(shù),調(diào)整好了后你會(huì)發(fā)現(xiàn)在PC端使用android系統(tǒng)字體的話(huà)整體效果應(yīng)該是和在android上一樣,這樣就很方便在PC端查看效果了,美術(shù)也就方便不少了。
暫且就想到了這些,整體來(lái)說(shuō)目前測(cè)試出的效果目前運(yùn)行的還算比較流暢的。
這幾天稍微閑了下,于是打算把freetype集成到公司項(xiàng)目中,這里先總結(jié)下,代碼不能上傳,因?yàn)樵诠緵](méi)權(quán)限- -!
1.上一篇文章中的的描邊其實(shí)有兩處內(nèi)存泄漏, Get_Glayph后沒(méi)有調(diào)用Done_Glayph。
2.文字渲染可以glTexSubImage2D函數(shù)來(lái)替換,也可以一次性通過(guò)Rgb數(shù)據(jù)生成紋理,注意要設(shè)置紋理幾個(gè)參數(shù),否則拉伸了可能會(huì)出現(xiàn)模糊不清,而且初始化創(chuàng)建紋理時(shí)應(yīng)該填充為透明色。同事要注意這個(gè)函數(shù),如果你的x+w大于整個(gè)紋理寬度是會(huì)報(bào)錯(cuò)的,文字也就不見(jiàn)了,要小心。
3.android 加載字體可以直接加載,不需要從內(nèi)存中讀取,因?yàn)橄到y(tǒng)字體目錄是可以直接訪(fǎng)問(wèn)讀取的。
4.字體緩存我的實(shí)現(xiàn)方法是利用FTC_Manager的前提下將每個(gè)字母的RGB數(shù)據(jù)緩存,下次渲染如果發(fā)現(xiàn)效果大小一樣的舊直接返回不再去讀取,要注意的是FTC_Mananger_LookupSize 函數(shù)返回的FT_Size結(jié)構(gòu),所以不能通過(guò)它來(lái)索引緩存,而應(yīng)該用實(shí)際字體Size,還有就是FT_Size在使用前一定要確保是最新的哦,這里東西是不能長(zhǎng)時(shí)間保留的,也就是說(shuō)查找一次用一次。
5.注意android紋理限制,2048*2048,所以對(duì)于很長(zhǎng)的文本要注意了。
6.為了兼容以前的一些代碼,現(xiàn)在我是直接將CCLabellTTF的實(shí)現(xiàn)替換了,所以同時(shí)要注意兩個(gè)布局參數(shù),調(diào)整好了后你會(huì)發(fā)現(xiàn)在PC端使用android系統(tǒng)字體的話(huà)整體效果應(yīng)該是和在android上一樣,這樣就很方便在PC端查看效果了,美術(shù)也就方便不少了。
暫且就想到了這些,整體來(lái)說(shuō)目前測(cè)試出的效果目前運(yùn)行的還算比較流暢的。
posted on 2013-12-06 18:26 l1989 閱讀(5238) 評(píng)論(7) 編輯 收藏 引用 所屬分類(lèi): C++ 、游戲