CCTexture2D* CCTextureCache::addPVRTCImage(const char* path, int bpp, bool hasAlpha, int width) { CCAssert(path != NULL, "TextureCache: fileimage MUST not be nill"); CCAssert( bpp==2 || bpp==4, "TextureCache: bpp must be either 2 or 4"); CCTexture2D * texture; std::string temp(path); if ( (texture = m_pTextures->objectForKey(temp)) ) { return texture; } // Split up directory and filename std::string fullpath( CCFileUtils::fullPathFromRelativePath(path) ); CCData * data = CCData::dataWithContentsOfFile(fullpath); texture = new CCTexture2D(); texture->initWithPVRTCData(data->bytes(), 0, bpp, hasAlpha, width); if( texture ) { m_pTextures->setObject(texture, temp); texture->autorelease(); } else { CCLOG("cocos2d: Couldn't add PVRTCImage:%s in CCTextureCache",path); } CC_SAFE_DELETE(data); return texture; }