diff --git a/Engine/source/T3D/assets/ImageAsset.h b/Engine/source/T3D/assets/ImageAsset.h index 6786c141c..1198aa6bd 100644 --- a/Engine/source/T3D/assets/ImageAsset.h +++ b/Engine/source/T3D/assets/ImageAsset.h @@ -336,7 +336,10 @@ public: \ const StringTableEntry get##name() const\ {\ if (m##name##Asset && (m##name##Asset->getImageFile() != StringTable->EmptyString()))\ - return Platform::makeRelativePathName(m##name##Asset->getImageFile(), Platform::getMainDotCsDir());\ + if (m##name##Asset->getImageFile()[0] == '#' || m##name##Asset->getImageFile()[0] == '$')\ + return m##name##Asset->getImageFile();\ + else\ + return Platform::makeRelativePathName(m##name##Asset->getImageFile(), Platform::getMainDotCsDir());\ else if (m##name##AssetId != StringTable->EmptyString())\ return m##name##AssetId;\ else if (m##name##Name != StringTable->EmptyString())\ @@ -346,7 +349,7 @@ public: \ }\ GFXTexHandle get##name##Resource() \ {\ - if (m##name##Asset && (m##name##Asset->getImageFileName() != StringTable->EmptyString()))\ + if (m##name##Asset && (m##name##Asset->getImageFile() != StringTable->EmptyString()))\ return m##name##Asset->getTexture(m##name##Profile);\ return m##name;\ }\ @@ -453,7 +456,6 @@ public: \ }\ if (get##name(index) != StringTable->EmptyString() && m##name##Name[index] != StringTable->insert("texhandle"))\ {\ - m##name##Asset[index]->getChangedSignal().notify(this, &className::changeFunc);\ if (get##name(index)[0] != '$' && get##name(index)[0] != '#')\ m##name[index].set(get##name(index), m##name##Profile[index], avar("%s() - mTextureObject (line %d)", __FUNCTION__, __LINE__));\ }\ @@ -483,7 +485,10 @@ public: \ const StringTableEntry get##name(const U32& index) const\ {\ if (m##name##Asset[index] && (m##name##Asset[index]->getImageFile() != StringTable->EmptyString()))\ - return Platform::makeRelativePathName(m##name##Asset[index]->getImageFile(), Platform::getMainDotCsDir());\ + if (m##name##Asset[index]->getImageFile()[0] == '#' || m##name##Asset[index]->getImageFile()[0] == '$')\ + return m##name##Asset[index]->getImageFile();\ + else\ + return Platform::makeRelativePathName(m##name##Asset[index]->getImageFile(), Platform::getMainDotCsDir());\ else if (m##name##AssetId[index] != StringTable->EmptyString())\ return m##name##AssetId[index];\ else if (m##name##Name[index] != StringTable->EmptyString())\ @@ -500,7 +505,7 @@ public: \ {\ if(index >= sm##name##Count || index < 0)\ return nullptr;\ - if (m##name##Asset[index] && (m##name##Asset[index]->getImageFileName() != StringTable->EmptyString()))\ + if (m##name##Asset[index] && (m##name##Asset[index]->getImageFile() != StringTable->EmptyString()))\ return m##name##Asset[index]->getTexture(m##name##Profile[index]);\ return m##name[index];\ }\ diff --git a/Engine/source/materials/materialDefinition.cpp b/Engine/source/materials/materialDefinition.cpp index 486ecbd1d..cc998bdeb 100644 --- a/Engine/source/materials/materialDefinition.cpp +++ b/Engine/source/materials/materialDefinition.cpp @@ -230,12 +230,6 @@ Material::Material() mReverbSoundOcclusion = 1.0; } -void Material::onImageAssetChanged() -{ - flush(); - reload(); -} - void Material::initPersistFields() { docsURL; diff --git a/Engine/source/materials/processedMaterial.cpp b/Engine/source/materials/processedMaterial.cpp index 41242c9b1..bf172bd7e 100644 --- a/Engine/source/materials/processedMaterial.cpp +++ b/Engine/source/materials/processedMaterial.cpp @@ -398,8 +398,8 @@ void ProcessedMaterial::_setStageData() if (!mStages[i].getTex(MFT_DiffuseMap)) { // If we start with a #, we're probably actually attempting to hit a named target and it may not get a hit on the first pass. - if (!String(mMaterial->mDiffuseMapAsset[i]->getImageFileName()).startsWith("#") && !String(mMaterial->mDiffuseMapAsset[i]->getImageFileName()).startsWith("$")) - mMaterial->logError("Failed to load diffuse map %s for stage %i", mMaterial->mDiffuseMapAsset[i]->getImageFileName(), i); + if (!String(mMaterial->getDiffuseMapAsset(i)->getImageFile()).startsWith("#") && !String(mMaterial->getDiffuseMapAsset(i)->getImageFile()).startsWith("$")) + mMaterial->logError("Failed to load diffuse map %s for stage %i", mMaterial->getDiffuseMapAsset(i)->getImageFile(), i); mStages[i].setTex(MFT_DiffuseMap, _createTexture(GFXTextureManager::getMissingTexturePath().c_str(), &GFXStaticTextureSRGBProfile)); }