您的位置:首页 > 移动开发 > Android开发

android切换到后台图片纹理丢失的解决方案

2016-06-12 15:49 507 查看
Android切换到后台,返回后纹理丢失

1. 纹理丢失的原因:cocos2dx在android切换后台再切换回来的时候会重新绘制纹理,需要修改它的重新绘制机制。

2. 解决方式:

cocos2dx/platform/CCPlatformMacros.h:

--1.修改#defineCC_ENABLE_CACHE_TEXTURE_DATA 1 

为 #defineCC_ENABLE_CACHE_TEXTURE_DATA 0

--2.cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxGLSurfaceView.java:注释 super.onPause()

--3.javaactivity-android.cpp: 注释

else

{

cocos2d::GL::invalidateStateCache()

cocos2d::GLProgramCache::getInstance()->reloadDefaultGLPrograms();

cocos2d::DrawPrimitives::init();

cocos2d::VolatileTextureMgr::reloadAllTextures();

cocos2d::EventCustom recreatedEvent(EVENT_RENDERER_RECREATED);

director->getEventDispatcher()->dispatchEvent(&recreatedEvent);

director->setGLDefaultValues();

}

--4.修改android最小适配sdk: <uses-sdk android:minSdkVersion="8"/>

3. 可以解决的问题:

android手机切换后台,切换回来纹理错位

android手机接电话,游戏纹理错位

android锁屏游戏黑屏

调用第三方sdk跳转界面时游戏黑屏、资源错位

很多文章都提到了 前三点  第四点设置minSdkVersion是一定要设置的 高于8 不行 具体原因不清楚 知道的楼下留言
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cocos2d-x 解决方案