summaryrefslogtreecommitdiff
path: root/src/resources/imagehelper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/resources/imagehelper.cpp')
-rw-r--r--src/resources/imagehelper.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/resources/imagehelper.cpp b/src/resources/imagehelper.cpp
index 5b7797cbb..eea15d29c 100644
--- a/src/resources/imagehelper.cpp
+++ b/src/resources/imagehelper.cpp
@@ -43,8 +43,7 @@ bool ImageHelper::mEnableAlpha = true;
Image *ImageHelper::load(SDL_RWops *const rw)
{
- SDL_Surface *const tmpImage = IMG_Load_RW(rw, 1);
-
+ SDL_Surface *const tmpImage = loadPng(rw);
if (!tmpImage)
{
logger->log("Error, image load failed: %s", IMG_GetError());
@@ -115,3 +114,15 @@ void ImageHelper::dumpSurfaceFormat(const SDL_Surface *const image) const
format->Gmask, format->Bmask, format->Amask);
}
}
+
+SDL_Surface *ImageHelper::loadPng(SDL_RWops *const rw)
+{
+ if (!rw || !IMG_isPNG(rw))
+ {
+ logger->log("Error, image missing or not png");
+ return nullptr;
+ }
+ SDL_Surface *const tmpImage = IMG_LoadPNG_RW(rw);
+ SDL_RWclose(rw);
+ return tmpImage;
+}