Another question (I didn’t check the code to be sure), do you fully support pvr files like cocos2d-iphone does? (I mean by ‘fully support’, iOS optimized pixelFormats and direct PVR texture loading)
Yeah, feature #536.
It has been implemented just one week ago, and will be published in the next version.
If you can’t wait for this, please checkout the lastest source from github. Any feedback is appreciated!
Ok, pvr files are loading correctly using latest repository, but ccz is not supported (ZipUtils::ccInflateCCZFile not implemented).
I’ll take a look at that.
I’ve make a patch to support CCZ compressed files, but I’m having trouble with it on iOS, as well as another issue with current git revision (not compiling).
I’ll try to fix this, but if I cannot before going to bed, I’ll post my patch and let you include and complete it
Patch attached, I let you change the files if it doesn’t match the way you want it to be.
Things I did:
Created a CCCoreFoundation.h file to define types and functions from CoreFoundation
Created platform dependant CCCoreFoundation.cpp files (currently only win32 and iOS, since I can only test those right now), with needed fonction from CoreFoundation, used by ZipUtils::ccInflateCCZFile
Implemented missing win32 CCFileUtils::ccLoadFileIntoMemory function
Added CCCoreFoundation.cpp file to win32 vcproj file
Uncommented ZipUtils::ccInflateCCZFile function
Added a missing “return ~~1” in ZipUtils::ccInflateCCZFile function
Things to do:
~~ Modify templates to include the new files I added
Add new platform files for airplay, android and woPhone
Test it on airplay, android and woPhone (Attached are: a modified HelloWorldScene.cpp and HelloWorldScene.h to load pvr.ccz file, as well as pvr.ccz and plist files)
My patch should be updated to use the nice macro Jirka Fajfr did in his CCTexturePVR.cpp file.
In the win32 (and possibly other OS except for iOS that has native CF functions) “CCByteOrderGetCurrent” function, we should probably use the following define to detect the host endian: #define CC_HOST_IS_BIG_ENDIAN (*(unsigned short *)“” < 0x100)
Oh and I forgot to mention that the “CCSwapInt32LittleToHost” function from CCTexturePVR.cpp file should be moved to the CCCoreFoundation.cpp files I created.
ohyeah, I finish it now. https://github.com/walzer/cocos2d-x/commit/069bbbf3308ab4ad2b0c0fac463c26bd80667930
CCSwapIntXxxxToHost is written to macros, and put into cocos2dx/include/ccMarcos.h, (I’m so lazy to add a new file, aha)
It works well on both iOS & Android, and I run instrument tool, without any mem leak detected.
Thanks Chris Calm’s contribution!