cocos2d-x android平台切后台返回后的纹理加载问题
来源:互联网 发布:淘宝客服智联招聘 编辑:程序博客网 时间:2024/04/28 11:19
在android平台,程序切后台后,纹理会被清除,再切回前台时需要重新生成纹理,如果纹理较多的话会导致短暂黑屏,这里提供两种解决方法:
第一种:
CCTextureCache.cpp文件中,VolatileTexture::addDataTexture方法。
void VolatileTexture::addDataTexture(CCTexture2D *tt, void* data, CCTexture2DPixelFormat pixelFormat, const CCSize& contentSize)
{
if (isReloading)
{
return;
}
VolatileTexture *vt = findVolotileTexture(tt);
vt->m_eCashedImageType = kImageData;
vt->m_pTextureData = data;
vt->m_PixelFormat = pixelFormat;
vt->m_TextureSize = contentSize;
}
这个直接保存的纹理data,再次重新生成该纹理时,会调用
void VolatileTexture::reloadAllTextures()
{
。。。。。
case kImageData:
{
vt->texture->initWithData(vt->m_pTextureData,
vt->m_PixelFormat,
vt->m_TextureSize.width,
vt->m_TextureSize.height,
vt->m_TextureSize);
}
break;
。。。。。
}
可以节省很多时间,纹理生成速度会很快,至于为什么。。。。。。直接是data啊,但是就因为是data,被保存了,消耗内存加倍,如果纹理过多的话可能导致内存吃不消哦。
第二种:
这个方法就是在返回前台时,加一个loading了,然后异步加载纹理(参考tests中的TextureCacheTest);
还是在void VolatileTexture::reloadAllTextures()里处理,只不过把加载纹理的过程改成异步的就可以了
- cocos2d-x android平台切后台返回后的纹理加载问题
- cocos2d-x android平台切入后台纹理失效的解决方法
- cocos2d-x android平台切入后台纹理失效的解决方法
- cocos2d-x android平台切入后台纹理失效的解决方法
- cocos2d-x android平台切入后台纹理失效的解决方法
- cocos2d-x android平台切入后台纹理失效的解决方法
- cocos2d-x android平台切入后台纹理失效的解决方法
- cocos2d-x编译到android平台后,增加返回键和菜单键的支持
- 解决cocos2d-x 后台切换后没有音效的问题
- android切换到后台,返回后图片纹理丢失
- 各个平台支持的Cocos2d-x最大纹理尺寸
- Cocos2d-x 3.x android平台菜单返回键监听
- Cocos2d-x 3.x android平台菜单返回键监听
- cocos2d-x(quick--cocos2d-x)引擎开发的游戏在android平台上,锁屏,按HOME键,重反游戏后黑屏问题
- cocos2d-x 2.1.4的版本bug cocos2d-x android返回黑屏问题的
- 【cocos2d-x官方文档】不同平台上Cocos2d-x所支持的最大纹理大小
- 从后台返回游戏的时候,新增弹出窗口的图片在android不加载(纹理变黑)的解决办法
- Cocos2d-x 异步加载纹理学习
- JavaWeb开发第8章标准标签库(JSTL)之一
- 设置MySql5.5数据库的字符编码为UTF8,解决中文乱码问题
- 3dmax蒙皮教程
- Android 情景模式的设置
- 利用百度点击原理提升关键词排名
- cocos2d-x android平台切后台返回后的纹理加载问题
- Ubuntu12.04下Django1.4的删除目录
- MySQL核心参数和推荐配置 三
- 经营网站不能只靠技术人员就可以动作起来
- Linux ALSA声卡驱动之三:PCM设备的创建
- 取得windows系统开机日期和时间
- winform 中用IrisSkin2 皮肤后,鼠标在窗体移动会有闪烁,GroupBox不停的闪烁 解决方法
- i2c_smbus_read_byte ()/i2c_smbus_write_byte()/i2c_smbus_read_byte_data ()/i2c_smbus_write_byte_data
- 联合线程 join()