关闭

纹理缓存

220人阅读 评论(0) 收藏 举报
分类:
auto sprite = Sprite::create("HelloWorld.png");
引擎是会先先在TextureCache纹理缓存中查找HelloWorld.png的文件名对应的纹理,
找不到该纹理的话再在源文件路径中查找该HelloWorld.png的文件,再将该文件的纹理添加到TextureCache纹理缓存中
(下次再使用HelloWorld.png的图片时就不用再加载,从而降低内存的使用和提高渲染效率)。
即使你释放了这个精灵的对象,该纹理也会一直存放在纹理缓存中,以便下一次使用。
当然你也可以手动释放掉该纹理,使用Director::getInstance()->getTextureCache()->removeUnusedTextures();
会释放当前所有引用计数为1的纹理,即目前没有被使用的纹理。比如新场景创建好后,可以使用此方法释放没有使用的纹理。
使用Director::getInstance()->getTextureCache()->removeTextureForKey("HelloWorld.png")释放特定的纹理

CCSprite::create(const char *pszFileName):pobSprite->initWithFile(pszFileName)
CCSprite::initWithFile(const char *pszFilename): CCTexture2D *pTexture = CCTextureCache::sharedTextureCache()->addImage

(pszFilename);
CCTextureCache::addImage(const char * path):texture = (CCTexture2D*)m_pTextures->objectForKey(pathKey.c_str());
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:6178次
    • 积分:231
    • 等级:
    • 排名:千里之外
    • 原创:19篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类