dakiki at July 25th, 2011 01:57 — #1
do you plan to support ccz compressed pvr files?
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)
walzer at July 25th, 2011 02:13 — #2
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!
dakiki at July 25th, 2011 03:47 — #3
Thanks, I will from now on, use the git repository instead of current “stable” release, it will be easier to communicate bugs (and to post patches).
dakiki at July 25th, 2011 05:09 — #4
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.
dakiki at July 25th, 2011 08:45 — #5
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
dakiki at July 25th, 2011 10:23 — #6
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)
walzer at July 25th, 2011 18:42 — #7
Mark. After upgrade to Lion, the Parallels virtual machine cannot work correctly. I had to fix this before apply your patch.
dakiki at July 27th, 2011 08:24 — #8
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)
dakiki at July 27th, 2011 08:29 — #9
Oh and I forgot to mention that the “CCSwapInt32LittleToHost” function from CCTexturePVR.cpp file should be moved to the CCCoreFoundation.cpp files I created.
walzer at July 27th, 2011 16:12 — #10
Many thanks! Feature #638 created.
Currently I am on business trip to ShangHai ChinaJoy, I will merge it in next week when I am back.
dakiki at July 28th, 2011 03:11 — #11
In my patch, I forgot to #include CCCoreFoundation.h in cocos2d.h
Please don’t forget it
walzer at August 10th, 2011 20:34 — #12
Sorry, Chris, I failed on apply your patch, no matter I use git am or git apply.
Can you please pull a request on github?
walzer at August 15th, 2011 17:09 — #13
ohyeah, I finish it now. https://github.com/walzer/cocos2d-x/commit/069bbbf3308ab4ad2b0c0fac463c26bd80667930CCSwapIntXxxxToHost 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!
dakiki at August 15th, 2011 22:49 — #14
Sorry, I was in away on vacation Good to know it’s working fine!