bool CParaWorldAsset::UnloadAssetByKeyName(const string& keyname) { string sFileExt = CParaFile::GetFileExtension(keyname); if(sFileExt == "dds" || sFileExt == "png") { TextureEntity* pEntity = (TextureEntity*) GetTextureManager().get(keyname); if(pEntity && (pEntity->GetState()==AssetEntity::ASSET_STATE_FAILED_TO_LOAD || pEntity->IsLoaded())) { pEntity->UnloadAsset(); pEntity->SetLocalFileName(""); if(pEntity->GetState()==AssetEntity::ASSET_STATE_FAILED_TO_LOAD) pEntity->SetState(AssetEntity::ASSET_STATE_NORMAL); return true; } } else if(sFileExt == "x" || sFileExt == "xml") { { MeshEntity* pEntity = (MeshEntity*) GetMeshManager().get(keyname); if(pEntity && pEntity->IsLoaded()) { pEntity->UnloadAsset(); pEntity->SetLocalFileName(""); return true; } } { ParaXEntity* pEntity = (ParaXEntity*) GetParaXManager().get(keyname); if(pEntity && pEntity->IsLoaded()) { pEntity->UnloadAsset(); pEntity->SetLocalFileName(""); return true; } } } #ifdef USE_DIRECTX_RENDERER else if(sFileExt == "iges") { CadModel* pCadModel = (CadModel*) m_CadModelManager.get(keyname); if(pCadModel && pCadModel->IsLoaded()) { pCadModel->UnloadAsset(); pCadModel->SetLocalFileName(""); return true; } } #endif return false; }
void ParaEngine::CFaceLayers::OnTaskCompleted() { for (int i = 0; i < CFS_TOTAL_NUM; ++i) { const FaceTextureComponent& component = m_layers[i]; // load the component texture if (component.name.empty()) continue; TextureEntity* pTextureEntity = NULL; AssetFileEntry* pEntry = CAssetManifest::GetSingleton().GetFile(component.name); if (pEntry) pTextureEntity = CGlobals::GetAssetManager()->LoadTexture(pEntry->GetLocalFileName(), pEntry->GetLocalFileName()); else pTextureEntity = CGlobals::GetAssetManager()->LoadTexture(component.name, component.name); if (pTextureEntity) { pTextureEntity->UnloadAsset(); } } }
void ParaEngine::CSkinLayers::OnTaskCompleted() { int nSize = (int)m_layers.size(); for (int i = 0; i < nSize; ++i) { CharTextureComponent &component = m_layers[i]; const CharRegionCoords &coords = CCharCustomizeSysSetting::regions[component.region]; // load the component texture if (component.name.empty()) continue; string componentfilename = component.name; AssetFileEntry* pEntry = CAssetManifest::GetSingleton().GetFile(componentfilename); if (pEntry) componentfilename = pEntry->GetLocalFileName(); TextureEntity* pTextureEntity = CGlobals::GetAssetManager()->LoadTexture(componentfilename, componentfilename); if (pTextureEntity) { pTextureEntity->UnloadAsset(); } } }