int CTextureAtlas::AddTexFromFile(std::string name, std::string file) { StringToLowerInPlace(name); //if the file already loaded, use that instead std::string lcfile = StringToLower(file); std::map<std::string, MemTex*>::iterator it = files.find(lcfile); if(it != files.end()) { MemTex *memtex = it->second; memtex->names.push_back(name); return 1; } CBitmap bitmap; if (!bitmap.Load(file)) throw content_error("Could not load texture from file " + file); if(bitmap.type != CBitmap::BitmapTypeStandardRGBA) //only suport rgba for now throw content_error("Unsupported bitmap format in file " + file); int ret = AddTexFromMem(name, bitmap.xsize, bitmap.ysize, RGBA32, bitmap.mem); if (ret == 1) files[lcfile] = memtextures.back(); return ret; }
int CTextureAtlas::AddTexFromFile(std::string name, std::string file) { StringToLowerInPlace(name); // if the file is already loaded, use that instead std::string lcFile = StringToLower(file); std::map<std::string, MemTex*>::iterator it = files.find(lcFile); if (it != files.end()) { MemTex* memtex = it->second; memtex->names.push_back(name); return 1; } CBitmap bitmap; if (!bitmap.Load(file)) { throw content_error("Could not load texture from file " + file); } if (bitmap.channels != 4 || bitmap.compressed) { // only suport RGBA for now throw content_error("Unsupported bitmap format in file " + file); } const int ret = AddTexFromMem(name, bitmap.xsize, bitmap.ysize, RGBA32, bitmap.mem); if (ret == 1) { files[lcFile] = memtextures.back(); } return ret; }
size_t CTextureAtlas::AddTexFromFile(std::string name, std::string file) { StringToLowerInPlace(name); // if the file is already loaded, use that instead const std::string& lcFile = StringToLower(file); const auto it = files.find(lcFile); if (it != files.end()) { memTextures[it->second].names.emplace_back(std::move(name)); return (it->second); } CBitmap bitmap; if (!bitmap.Load(file)) throw content_error("Could not load texture from file " + file); // only suport RGBA for now if (bitmap.channels != 4 || bitmap.compressed) throw content_error("Unsupported bitmap format in file " + file); return (files[lcFile] = AddTexFromMem(std::move(name), bitmap.xsize, bitmap.ysize, RGBA32, bitmap.GetRawMem())); }