ImageTargetRef ImageIoRegistrar::Inst::createTarget( DataTargetRef dataTarget, ImageSourceRef imageSource, ImageTarget::Options options, std::string extension ) { std::transform( extension.begin(), extension.end(), extension.begin(), static_cast<int(*)(int)>(tolower) ); map<string, multimap<int32_t,pair<ImageIoRegistrar::TargetCreationFunc,string> > >::iterator sIt = mTargets.find( extension ); if( sIt != mTargets.end() ) { ImageIoRegistrar::TargetCreationFunc creationFunc = sIt->second.begin()->second.first; string extensionData = sIt->second.begin()->second.second; return (*creationFunc)( dataTarget, imageSource, options, extensionData ); } else return ImageTargetRef(); // couldn't find a handler for this extension }
ImageTargetRef ImageTargetFileWic::createRef( DataTargetRef dataTarget, ImageSourceRef imageSource, const string &extensionData ) { return ImageTargetRef( new ImageTargetFileWic( dataTarget, imageSource, extensionData ) ); }
ImageTargetRef ImageTargetFileTinyExr::create( DataTargetRef dataTarget, ImageSourceRef imageSource, ImageTarget::Options options, const std::string &extensionData ) { return ImageTargetRef( new ImageTargetFileTinyExr( dataTarget, imageSource, options, extensionData ) ); }
ImageTargetRef ImageTargetFileQuartz::createRef( DataTargetRef dataTarget, ImageSourceRef imageSource, ImageTarget::Options options, const string &extensionData ) { return ImageTargetRef( new ImageTargetFileQuartz( dataTarget, imageSource, options, extensionData ) ); }