void ToMainThread::runDelegate() { if (delegate) { CAImage *image = new CAImage(); if (image->initWithImageFile(_path)) { CAScheduler::unschedule(schedule_selector(ToMainThread::runDelegate), this); delegate->getSelectedImage(CAImage::generateMipmapsWithImage(image)); image->release(); } } }
CAImage* CAImageCache::addImage(const std::string& path) { if (path.empty()) { return NULL; } CAImage* image = NULL; //pthread_mutex_lock(m_pDictLock); image = m_mImages.getValue(path); if (!image) { std::string lowerCase(path); for (unsigned int i = 0; i < lowerCase.length(); ++i) { lowerCase[i] = tolower(lowerCase[i]); } do { image = new CAImage(); if(image != NULL && image->initWithImageFile(path.c_str())) { m_mImages.erase(path); m_mImages.insert(path, image); image->release(); } else { CC_SAFE_DELETE(image); } } while (0); } //pthread_mutex_unlock(m_pDictLock); return image; }