aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gui/guiEngine.cpp26
1 files changed, 17 insertions, 9 deletions
diff --git a/src/gui/guiEngine.cpp b/src/gui/guiEngine.cpp
index a3ef1b9a6..a61847a04 100644
--- a/src/gui/guiEngine.cpp
+++ b/src/gui/guiEngine.cpp
@@ -70,22 +70,30 @@ MenuTextureSource::~MenuTextureSource()
/******************************************************************************/
video::ITexture *MenuTextureSource::getTexture(const std::string &name, u32 *id)
{
- if(id)
+ if (id)
*id = 0;
- if(name.empty())
+
+ if (name.empty())
return NULL;
+
m_to_delete.insert(name);
#ifdef __ANDROID__
- video::IImage *image = m_driver->createImageFromFile(name.c_str());
- if (image) {
- image = Align2Npot2(image, m_driver);
- video::ITexture* retval = m_driver->addTexture(name.c_str(), image);
- image->drop();
+ video::ITexture *retval = m_driver->findTexture(name.c_str());
+ if (retval)
return retval;
- }
-#endif
+
+ video::IImage *image = m_driver->createImageFromFile(name.c_str());
+ if (!image)
+ return NULL;
+
+ image = Align2Npot2(image, m_driver);
+ retval = m_driver->addTexture(name.c_str(), image);
+ image->drop();
+ return retval;
+#else
return m_driver->getTexture(name.c_str());
+#endif
}
/******************************************************************************/