Chris Calm pvr.ccz files
Posts 31
Added by Chris Calm almost 2 years ago

Hi,

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)

Thanks,
Chris

Zhe Wang RE: pvr.ccz files
Posts 1642
Location Amoy, China
Added by Zhe Wang almost 2 years ago

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!

Enjoy Coding, Enjoy Life.

Chris Calm RE: pvr.ccz files
Posts 31
Added by Chris Calm almost 2 years ago

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).

Chris Calm RE: pvr.ccz files
Posts 31
Added by Chris Calm almost 2 years ago

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.

Chris Calm RE: pvr.ccz files
Posts 31
Added by Chris Calm almost 2 years ago

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 :D

Chris Calm RE: pvr.ccz files
Posts 31
Added by Chris Calm almost 2 years ago

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)

patch-ccz.patch - git Patch file (12.2 kB)

pvr.ccz_win32_test.zip - files to test the patch (23.2 kB)

Zhe Wang RE: pvr.ccz files
Posts 1642
Location Amoy, China
Added by Zhe Wang almost 2 years ago

Mark. After upgrade to Lion, the Parallels virtual machine cannot work correctly. I had to fix this before apply your patch. :(

Enjoy Coding, Enjoy Life.

Chris Calm RE: pvr.ccz files
Posts 31
Added by Chris Calm almost 2 years ago

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 *)"\0\xff" < 0x100)

Chris Calm RE: pvr.ccz files
Posts 31
Added by Chris Calm almost 2 years ago

Oh and I forgot to mention that the "CCSwapInt32LittleToHost" function from CCTexturePVR.cpp file should be moved to the CCCoreFoundation.cpp files I created.

Zhe Wang RE: pvr.ccz files
Posts 1642
Location Amoy, China
Added by Zhe Wang almost 2 years ago

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.

Enjoy Coding, Enjoy Life.

Chris Calm RE: pvr.ccz files
Posts 31
Added by Chris Calm almost 2 years ago

In my patch, I forgot to #include CCCoreFoundation.h in cocos2d.h
Please don't forget it :)

Zhe Wang RE: pvr.ccz files
Posts 1642
Location Amoy, China
Added by Zhe Wang almost 2 years ago

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?

Enjoy Coding, Enjoy Life.

Zhe Wang RE: pvr.ccz files
Posts 1642
Location Amoy, China
Added by Zhe Wang almost 2 years ago

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!

Enjoy Coding, Enjoy Life.

Chris Calm RE: pvr.ccz files
Posts 31
Added by Chris Calm almost 2 years ago

Sorry, I was in away on vacation :)
Good to know it's working fine!


(1-13/13)