We are migrating issue tracker of Cocos2d-x Project to Github, please create new issue there. Thanks.
CCSpriteFrameCache + CCTextureCache addImage Bug
CCSpriteFrameCache + CCTextureCache addImage Bug
Fun Dev wrote:
When using CCSpriteFrameCache addSpriteFramesWithFile and CCTextureCache addImage method, pre existing texture can be corrupted.
How to reproduce this bug:
1. Create a new project in cocos2d-x (I confirmed this bug exist in 2.1.5 and 2.2, don’t know about version < 2.1.5)
2. Make a simple generated PVR file (test.plist and test.pvr) using texture packer (in this case I generate the test.pvr using the cocos2d-x HelloWorld.png)
3. Add that files (test.plist and test.pvr) to the resource.
4. In the HelloWorldScene.cpp, in the init() method, comment all other code and make it like thisbool HelloWorld::init() { ////////////////////////////// // 1. super init first if ( !CCLayer::init() ) { return false; } CCTexture2D::PVRImagesHavePremultipliedAlpha(true); CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("test.plist"); return true; }
- After that, run the project in the simulator, and you will notice that the fps texture is corrupted.
It’s not only PVR files that affected but also pvr.ccz files.
Same bug for me (Sorry for my english). I am programing a game. Everything is fine except the Release version in iOS. Somebody said changing the Project->BuildSetting->Optimization Level would be okay. But nothing fixed after I changed the build setting & clean the products & rebuild the release version. After a few days debug (God! 2 days more!). I found the problem, here is the code:
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("test.plist");
Adding a plist file to the CCSpriteFrameCache, it failed!, But when I execute the same code twice, it work!
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("test.plist");
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("test.plist");
Getting inside of the addSpriteFramesWithFile() fun, target line
CCTexture2D *pTexture = CCTextureCache::sharedTextureCache()->addImage(texturePath.c_str());
pTexture is null first time and not null second time.
This bug only happen in pvr format (also pvr.ccz). Please anyone tell me how to fix the problem!
@Fun Dev, Thanks @Oren Bengigi, I find the answer here:
http://www.cocos2d-x.org/forums/6/topics/18390?r=43651
funkata wrote:
When using CCSpriteFrameCache addSpriteFramesWithFile and CCTextureCache addImage method, pre existing texture can be corrupted.
How to reproduce this bug:
1. Create a new project in cocos2d-x (I confirmed this bug exist in 2.1.5 and 2.2, don’t know about version < 2.1.5)
2. Make a simple generated PVR file (test.plist and test.pvr) using texture packer (in this case I generate the test.pvr using the cocos2d-x HelloWorld.png)
3. Add that files (test.plist and test.pvr) to the resource.
4. In the HelloWorldScene.cpp, in the init() method, comment all other code and make it like thisbool HelloWorld::init() { ////////////////////////////// // 1. super init first if ( !CCLayer::init() ) { return false; } CCTexture2D::PVRImagesHavePremultipliedAlpha(true); CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("test.plist"); return true; }
- After that, run the project in the simulator, and you will notice that the fps texture is corrupted.
It’s not only PVR files that affected but also pvr.ccz files.
I encounter this problem, too!
cocos2d-x 2.1.5&2.2.3
And I suspect this problem also makes CCArmature display incorrect with PVR images!
I've solved the problem that CCArmature display incorrect with PVR images.
TexturePacker must check the "Premultiply Alpha" option, and cpp must add line:
CCTexture2D::PVRImagesHavePremultipliedAlpha(true);
But FPS is still corrupted as @funkata said!
Redmine issue system is closed, we are using github issue system instead.
This issue was moved to https://github.com/cocos2d/cocos2d-x/issues/8228
http://www.coachoutletstoreinuk.com/ Coach Outlet Online
http://www.coachfactoryoutletanus.com/ Coach Outlet
http://www.coachoutletonlineunsius.com/ Coach Factory Outlet
http://www.coachoutletonlinetur.com/ Coach Outlet Online
http://www.coachfactoryoutletnbsa.com/ Coach Factory Outlet
http://www.coachfactoryoutletuisa.com/ Coach Outlet Store Online
http://www.coachoutletstorenie.com/ Coach Outlet Store Online
http://www.coachfactorystoreuin.com/ Coach Factory Outlet
http://www.coachfactoryoutletreba.com/ Coach Outlet
http://www.coachfactoryoutletonlinesius.com/ Coach Handbags Outlet
http://www.coachoutletonlinetnse.com/ Coach Outlet
http://www.coachoutletnoia.com/ Coach Outlet
http://www.chanleoutletmodi.com/ Chanel Outlet Online
http://www.louisvuittonoutletina.com/ Louis Vuitton
http://www.louisvuittonoutletine.com/ Louis Vuitton Outlet
http://www.guccibeltsoutletbcus.com/ Gucci Belts
http://www.guccibelststco.com/ Gucci Belt
http://www.louisvuittonoutletsnib.com/ Louis Vuitton Outlet
http://www.oakleysunglassescnc.name/ Oakley Sunglasses Outlet
http://www.louisvuittonoutletmoba.com/ Louis Vuitton Outlet
http://www.oakleyssunglassesmobo.com/ Oakley Sunglasses Outlet
http://www.oakleysunglassesmaba.com/ Oakley Sunglasses
http://www.oakleysunglassinsc.com/ Oakley Sunglasses
http://www.louisvuittonoutletinca.com/ Louis Vuitton Outlet
http://www.louisvuittonoutletpft.com/ Louis Vuitton Outlet
http://www.louisvuittonoutletcoms.com/ Louis Vuitton Outlet
http://www.louisvuittonoutletcsc.com/ Louis Vuitton Handbags
http://www.louisvuittonoutletsnib.com/ Louis Vuitton Outlet Online
http://www.louisvuitton-bagsonlinee.net/ Louis Vuitton Handbags
http://www.louisvuittonoutletori.com/ Louis Vuitton
http://www.louisvuittonoutlettca.com/ Louis Vuitton Handbags
http://www.louisvuittonoutletincn.com/ Louis Vuitton Outlet Online
http://www.chaneloutletmodi.com/ Chanel Outlet
http://www.chaneloutletmodo.com/ Chanel Outlet
http://www.chaneloutletinaus.net/ Chanel Outlet
http://www.chaneloutletinfr.com/ Chanel
http://www.oakleysunglassesmodo.com/ Oakley Sunglasses
http://www.okelysuglassesmodo.net/ Oakley Sunglasses Outlet
http://www.oakelysunglassesmod.net/ Oakley Sunglasses
http://www.oakleyoutletshop.us.com/ Oakley Sunglasses
http://www.oakleyoutletonline.us.com/ Oakley Sunglasses Outlet
http://www.oakleysunglassesviews.com/ Oakley Sunglasses Outlet
http://www.raybanshop.name/ Ray Ban
http://www.raybansunglassesshop.name/ Ray Ban Sunglasses
http://www.raybansunglassesmodo.net/ Ray Ban Sunglasses Outlet
http://www.coachoutletonlineptn.com/ Coach Outlet
http://www.coachoutletstoreinuk.com/ Coach Outlet Online
http://www.coachfactoryoutletanus.com/ Coach Outlet
http://www.coachoutletonlineunsius.com/ Coach Factory Outlet
http://www.coachoutletonlinetur.com/ Coach Outlet Online
http://www.coachfactoryoutletnbsa.com/ Coach Outlet Store
http://www.coachfactoryoutletuisa.com/ Coach Outlet Store Online
http://www.coachoutletstorenie.com/ Coach Outlet
http://www.coachfactorystoreuin.com/ Coach Factory Online
http://www.coachfactoryoutletreba.com/ Coach Factory Outlet
http://www.coachfactoryoutletonlinesius.com/ Coach Factory Outlet
http://www.coachoutletonlinetnse.com/ Coach Outlet
http://www.coachoutletnoia.com/ Coach Outlet Store Online
http://www.chanleoutletmodi.com/ Chanel Outlet Online
http://www.louisvuittonoutletina.com/ Louis Vuitton Outlet
http://www.louisvuittonoutletine.com/ Louis Vuitton Handbags
http://www.guccibeltsoutletbcus.com/ Gucci Belt
http://www.guccibelststco.com/ Gucci Belts
http://www.louisvuittonoutletsnib.com/ Louis Vuitton Outlet Online
http://www.oakleysunglassescnc.name/ Oakley Sunglasses Outlet
http://www.louisvuittonoutletmoba.com/ Louis Vuitton Outlet Online
http://www.oakleyssunglassesmobo.com/ Oakley Sunglasses Outlet
http://www.oakleysunglassesmaba.com/ Cheap Oakley Sunglasses
http://www.oakleysunglassinsc.com/ Oakley Sunglasses
http://www.louisvuittonoutletinca.com/ Louis Vuitton Outlet
http://www.louisvuittonoutletpft.com/ Louis Vuitton Outlet
http://www.louisvuittonoutletcoms.com/ Louis Vuitton Outlet
http://www.louisvuittonoutletcsc.com/ Louis Vuitton Handbags
http://www.louisvuittonoutletsnib.com/ Louis Vuitton Outlet Online
http://www.louisvuitton-bagsonlinee.net/ Louis Vuitton Handbags
http://www.louisvuittonoutletori.com/ Louis Vuitton
http://www.louisvuittonoutlettca.com/ Louis Vuitton Handbags
http://www.louisvuittonoutletincn.com/ Louis Vuitton Outlet Online
http://www.chaneloutletmodi.com/ Chanel Outlet
http://www.chaneloutletmodo.com/ Chanel Outlet
http://www.chaneloutletinaus.net/ Chanel Outlet
http://www.chaneloutletinfr.com/ Chanel
http://www.oakleysunglassesmodo.com/ Oakley Sunglasses
http://www.okelysuglassesmodo.net/ Oakley Sunglasses Outlet
http://www.oakelysunglassesmod.net/ Oakley Sunglasses
http://www.oakleyoutletshop.us.com/ Oakley Sunglasses
http://www.oakleyoutletonline.us.com/ Oakley Sunglasses Outlet
http://www.oakleysunglassesviews.com/ Oakley Sunglasses Outlet
http://www.raybanshop.name/ Ray Ban
http://www.raybansunglassesshop.name/ Ray Ban Sunglasses
http://www.raybansunglassesmodo.net/ Ray Ban Sunglasses Outlet
http://www.coachoutletonlineptn.com/ Coach Outlet
http://www.coachoutletstoreinuk.com/ Coach Outlet Online
http://www.coachfactoryoutletanus.com/ Coach Factory Outlet
http://www.coachoutletonlineunsius.com/ Coach Outlet
http://www.coachoutletonlinetur.com/ Coach Online Outlet
http://www.coachfactoryoutletnbsa.com/ Coach Factory Outlet
http://www.coachfactoryoutletuisa.com/ Coach Outlet Store
http://www.coachoutletstorenie.com/ Coach Outlet Store
http://www.coachfactorystoreuin.com/ Coach Outlet Online
http://www.coachfactoryoutletreba.com/ Coach Factory Outlet
http://www.coachfactoryoutletonlinesius.com/ Coach Factory Online
http://www.coachoutletonlinetnse.com/ Coach Factory Outlet
Status: | Closed | |
---|---|---|
Start date: | 2013-10-02 | |
Priority: | Urgent | |
Due date: | ||
Assignee: | - | |
% Done: | 0% |
|
Category: | all | |
Target version: | - |
When using CCSpriteFrameCache addSpriteFramesWithFile and CCTextureCache addImage method, pre existing texture can be corrupted.
How to reproduce this bug:
1. Create a new project in cocos2d-x (I confirmed this bug exist in 2.1.5 and 2.2, don’t know about version < 2.1.5)
2. Make a simple generated PVR file (test.plist and test.pvr) using texture packer (in this case I generate the test.pvr using the cocos2d-x HelloWorld.png)
3. Add that files (test.plist and test.pvr) to the resource.
4. In the HelloWorldScene.cpp, in the init() method, comment all other code and make it like this
It’s not only PVR files that affected but also pvr.ccz files.
corrupted.png (34.7 kB) funkata, 2013-10-02 19:06