void Atlas::Save() { MEngine* engine = MEngine::getInstance(); std::string imgName = (std::string("atlases/") + m_Name + ".png"); engine->getImageSaver()->loadData(imgName.c_str(), &m_Atlas); if(m_ConfigFile) { m_ConfigFile->Write("atlas.filename", imgName); m_ConfigFile->Write("atlas.images", m_Images.size()); int i = 0; for(imageMapIter iImage = m_Images.begin(); iImage != m_Images.end(); iImage++) { std::string root = "atlas.image"; char num[32]; snprintf(num, 32, "%d.", i); root += num; ++i; m_ConfigFile->Write((root + "name").c_str(), iImage->first); m_ConfigFile->Write((root + "pos").c_str(), iImage->second.uv); m_ConfigFile->Write((root + "w").c_str(), iImage->second.width); m_ConfigFile->Write((root + "h").c_str(), iImage->second.height); } m_ConfigFile->Save(); } }
int ScriptAtlasImageWrite() { MEngine* engine = MEngine::getInstance(); MScriptContext* script = engine->getScriptContext(); MImage* image = (MImage*)script->getPointer(0); const char* file = script->getString(1); engine->getImageSaver()->loadData(file, image); return 0; }