在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,