//----------------------------------------------------------------------- void PagingLandScapeTexture_InstantBaseTextureEdit::_unloadMaterial() { assert (!mMaterial.isNull() && "PagingLandScapeTexture_InstantBaseTextureEdit::::_unloadMaterial"); if (mIsModified) { const String fname = PagingLandScapeOptions::getSingleton().landscape_filename + ".Base." + StringConverter::toString(mDataZ) + String(".") + StringConverter::toString(mDataX) + "."; const String extname = PagingLandScapeOptions::getSingleton().TextureExtension; FileInfoListPtr finfo = ResourceGroupManager::getSingleton().findResourceFileInfo ( PagingLandScapeOptions::getSingleton().groupName, fname + extname); FileInfoList::iterator it = finfo->begin(); if (it != finfo->end()) { //FileInfo *inf = &(*it); char *olddir = ChangeToDir (const_cast< char * > (((it)->archive->getName()).c_str())); //FileSystemArchive::pushDirectory() mImage.save(fname + "modif." + extname); //FileSystemArchive::pushDirectory(); RetablishDir (olddir); } } // Anyway, they're surely null already, as they're freed by delete page() mBuffer.setNull (); mTexture.setNull (); mImage.loadDynamicImage (0, 0, 0, PF_BYTE_RGB); mBaseData = 0; }
//----------------------------------------------------------------------- void PagingLandScapeData2D_HeightFieldTC::_save() { const Real scale = 1.0f / mParent->getOptions()->scale.y; uchar *img = mImage->getData(); unsigned int j = 0; for (unsigned int i = 0; i < mMax - 1; i ++) { img[ i ] = uchar (_encodeTC(mHeightData[j++]) * scale); } const String fname = mParent->getOptions()->LandScape_filename + "." + StringConverter::toString(mPageZ) + "." + StringConverter::toString(mPageX) + "."; const String extname = mParent->getOptions()->LandScape_extension; FileInfoListPtr finfo = ResourceGroupManager::getSingleton().findResourceFileInfo ( mParent->getOptions()->groupName, fname + extname); FileInfoList::iterator it = finfo->begin(); if (it != finfo->end()) { //FileInfo *inf = &(*it); char *olddir = ChangeToDir (const_cast< char * > (((it)->archive->getName()).c_str())); //FileSystemArchive::pushDirectory() mImage->save (fname + "modif." + extname); //FileSystemArchive::pushDirectory(); RetablishDir (olddir); } }