探cocos2dx纹理模块(textures),源码版本(2.2.3)

模块相关类(模块名textures):
CCTexture2D:

在cocos2dx里边所有的2d纹理都由这个类来表示。它提供了多种方式来构建一个cocos2dx的纹理对象,比如说通过多种格式的图像文件,甚至是buffer,创建方式调用了CCImage类对象。除了创建方式,还有设置纹理过滤参数的接口。

在opengl中,设置纹理过滤函数参数的意义在于从纹理空间映射到帧缓冲图像空间时所需要做的操作中,因为在映射的过程中有可能会造成图像的失真,比如说一个实际上只有32*32的纹理映射到64*64的帧缓冲矩形上时会产生锯齿(或者是高几何精度物体观察角度造成的失真)。这时候可以设置opengl的纹理过滤函数让最终展现在屏幕上的图形有较好的效果。
CCTextureAtlas:
在opengl低版本中,每一次渲染的时候总是需要向opengl传入顶点信息,法向量信息,颜色等等。这样就造成的性能上的浪费,后来就开发VBO技术,其实它主要功能还是在gpu里边构建一个buffer,里边保存有各种之前提到的渲染信息,这样每一次渲染的时候都不需要传入很多渲染信息了,从而提高了渲染性能,CCTextureAtlas就封装了这种渲染技术。因为opengl es有纹理2指数宽高的需求,atlas也提高了内存性能。
CCTextureCache:
CCTexture2D容器类,提供多种方式创建CCTexture2D,代码里边调用CCTexture2D的创建接口。这个类也实现了cocos2dx纹理的内存管理,没有用到的纹理将会被释放,如果还存在引用则不会释放。具体参考: cocos2dx内存管理
CCTextureETC:
提供加载安卓平台硬件加速特有的格式的方法,这个类不负责渲染,只负责提供opengl es的纹理id,图像宽高等信息,这个类对象在CCTexture2D里边创建ETC格式的纹理被用到。
CCTexturePvr:
这个类同上,不过是ios平台硬件加速格式。另外PVR有一个预先计算alpha通道的标志m_bHasPremultipliedAlpha,预先计算是用于从RGBA转RGB时用到的。

uml图:


使用方式:
略。

扩展:
如果需要支持另外一种格式图片的话,需要在CCImage里边添加一个方法就可以了,类似于:CCImage::_initWithJpgData。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值