summaryrefslogtreecommitdiffstats
path: root/src/runtimerender/resourcemanager/Qt3DSRenderBufferManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtimerender/resourcemanager/Qt3DSRenderBufferManager.cpp')
-rw-r--r--src/runtimerender/resourcemanager/Qt3DSRenderBufferManager.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/runtimerender/resourcemanager/Qt3DSRenderBufferManager.cpp b/src/runtimerender/resourcemanager/Qt3DSRenderBufferManager.cpp
index 38d021a..388ef1b 100644
--- a/src/runtimerender/resourcemanager/Qt3DSRenderBufferManager.cpp
+++ b/src/runtimerender/resourcemanager/Qt3DSRenderBufferManager.cpp
@@ -373,6 +373,20 @@ struct SBufferManager : public IBufferManager
CRegisteredString imagePath = getImagePath(path);
TImageMap::iterator theIter = m_ImageMap.find(imagePath);
+
+#ifndef NO_EXTERNAL_LOOKUP
+ // Failed to look up image from map, perhaps external of UIP/UIA image
+ // Try with full URI and load from filesystem.
+ if (theIter == m_ImageMap.end())
+ theIter = m_ImageMap.find(getImagePath(QString::fromLatin1(inSourcePath.c_str())));
+ if (theIter == m_ImageMap.end()) {
+ loadTextureImage(*m_reloadableTextures[path], flipCompressed);
+ imagePath = getImagePath(path);
+ theIter = m_ImageMap.find(imagePath);
+ if (theIter == m_ImageMap.end())
+ theIter = m_ImageMap.find(getImagePath(QString::fromLatin1(inSourcePath.c_str())));
+ }
+#endif
if (theIter != m_ImageMap.end()) {
SImageEntry textureData = theIter->second;
if (textureData.m_Loaded) {