void Material::initialize() { ITextureManager *pTextureManager = getRenderEngine()->getRenderSystem()->getTextureManager(); size_t size = m_vLayers.size(); for(size_t i = 0;i < size;i++) { MaterialLayer& layer = m_vLayers[i]; if(!layer.m_szTexture.empty()) { layer.m_pTexture = pTextureManager->createTextureFromFile(layer.m_szTexture,FO_LINEAR,FO_LINEAR,FO_LINEAR); } } }
void SubModelInstance::setTexture(int layer,const char* szName) { Assert(layer >= 0 && layer < m_mtlOrigin.numLayers()); MaterialLayer *pLayer = m_mtl.getLayer(layer); const std::string& textureName = pLayer->m_szTexture; if(StringHelper::casecmp(textureName,szName) == 0)return; safeRelease(pLayer->m_pTexture); pLayer->m_szTexture = ""; if(!szName)return; IRenderEngine *pRenderEngine = getRenderEngine(); IRenderSystem *pRenderSystem = pRenderEngine->getRenderSystem(); ITextureManager *pTextureManager = pRenderSystem->getTextureManager(); pLayer->m_pTexture = pTextureManager->createTextureFromFile(szName,FO_LINEAR,FO_LINEAR,FO_LINEAR); if(pLayer->m_pTexture) { pLayer->m_szTexture = szName; } }