Marmalde中使用Packed font的渲染的问题

近期由于需要让游戏支持中文,而游戏默认的实现是用bitmap font来实现字体,而中文常用字又很多,所以打算将NGUI中packed font的实现移植到游戏中,但是渲染时出现了问题,效果如下:


明显可以看到字中间的某些像素被抠掉了。

问题在于CIwTexture中有一个叫chromakey的东西,如果贴图中某些像素与这个chromakey相等,那么会被当做透明像素而抠掉。这让我想起了当年开发ds时,贴图调色板第一个颜色会被默认作为透明像素。

这里我们可以用CIwTexture的一个未公开的api来把这个特性关掉,幸好api是public的,不过即使是private的,我们可以也可以hack的方法去设置,无非就是把private #define为public,或者直接用char*来操作数据成员。

CIwTexture* tex = new CIwTexture();
tex->_SetFlags(CIwTexture::NO_CHROMA_KEY_F);

之后,packed font就可以被正常渲染了,效果如下


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值