2.2.2骨骼动画内存泄露
来源:互联网 发布:linux 读音 编辑:程序博客网 时间:2024/05/21 07:04
我使用的是2.2.2,异步加载的骨骼动画,在移除后还是材质的引用计数还是很大。
经调试发现 骨骼数据被缓存起来的Key是空字符串
修改如下:
1.把骨骼文件名绑定进入
CCDataReaderHelper.cpp
552:
旧: CCArmatureDataManager::sharedArmatureDataManager()->addSpriteFrameFromFile(
pAsyncStruct->plistPath.c_str(),
pAsyncStruct->imagePath.c_str());
新 CCArmatureDataManager::sharedArmatureDataManager()->addSpriteFrameFromFile(
pAsyncStruct->plistPath.c_str(),
pAsyncStruct->imagePath.c_str(),
pAsyncStruct->filename.c_str());
560:
旧: CCArmatureDataManager::sharedArmatureDataManager()->addSpriteFrameFromFile(
(pAsyncStruct->baseFilePath + configPath + ".plist").c_str(),
(pAsyncStruct->baseFilePath + configPath + ".png").c_str());
新:
CCArmatureDataManager::sharedArmatureDataManager()->addSpriteFrameFromFile(
(pAsyncStruct->baseFilePath + configPath + ".plist").c_str(),
(pAsyncStruct->baseFilePath + configPath + ".png").c_str(),
pAsyncStruct->filename.c_str());
4. 这句移除骨骼数据时,也移除对应的材质
CCArmatureDataManager
135
//添加
std::string texturePath = i->c_str();
texturePath = texturePath.erase(texturePath.find_last_of("."));
texturePath= texturePath + ".png";
CCTextureCache::sharedTextureCache()->removeTextureForKey(texturePath.c_str());
//end
经调试发现 骨骼数据被缓存起来的Key是空字符串
修改如下:
1.把骨骼文件名绑定进入
CCDataReaderHelper.cpp
552:
旧: CCArmatureDataManager::sharedArmatureDataManager()->addSpriteFrameFromFile(
pAsyncStruct->plistPath.c_str(),
pAsyncStruct->imagePath.c_str());
新 CCArmatureDataManager::sharedArmatureDataManager()->addSpriteFrameFromFile(
pAsyncStruct->plistPath.c_str(),
pAsyncStruct->imagePath.c_str(),
pAsyncStruct->filename.c_str());
560:
旧: CCArmatureDataManager::sharedArmatureDataManager()->addSpriteFrameFromFile(
(pAsyncStruct->baseFilePath + configPath + ".plist").c_str(),
(pAsyncStruct->baseFilePath + configPath + ".png").c_str());
新:
CCArmatureDataManager::sharedArmatureDataManager()->addSpriteFrameFromFile(
(pAsyncStruct->baseFilePath + configPath + ".plist").c_str(),
(pAsyncStruct->baseFilePath + configPath + ".png").c_str(),
pAsyncStruct->filename.c_str());
4. 这句移除骨骼数据时,也移除对应的材质
CCArmatureDataManager
135
//添加
std::string texturePath = i->c_str();
texturePath = texturePath.erase(texturePath.find_last_of("."));
texturePath= texturePath + ".png";
CCTextureCache::sharedTextureCache()->removeTextureForKey(texturePath.c_str());
//end
0 0
- 2.2.2骨骼动画内存泄露
- WOW技术---2, 骨骼动画
- 三、2D骨骼动画
- 骨骼动画
- 骨骼动画
- 骨骼动画
- 骨骼动画
- 骨骼动画
- 骨骼动画
- 骨骼动画
- 骨骼动画
- 骨骼动画
- 骨骼动画
- 骨骼动画
- Cocos2dx v3.2骨骼动画加载学习
- Spine(2D骨骼动画)
- Cocos2dx v3.2骨骼动画加载学习
- Cocos2dx v3.2骨骼动画加载学习
- 即时通信中消息回执及阅后即焚相关专利研究
- duilib学习之一 增加GroupBox
- hdu 2546 饭卡(01背包)
- 2.6静态链表
- TCP Segment Offload(TSO)的实现原理浅析
- 2.2.2骨骼动画内存泄露
- adoop学习之hadoop完全分布式集群安装
- sketch3.3.3最新破解版-【海鹰原创】
- js实现顶部固定,摆脱ie的抖动
- Kafka概述
- 使用abel533大神的mybatis分页插件总结
- Hadoop集群配置(最全面总结)
- Delete Node in a Linked List
- leetCode(51):Valid Palindrome