projects
/
supertux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
8778293
)
Fix for images with invalid pixel formats
author
Tobias Markus
<tobbi@mozilla-uk.org>
Sat, 7 Mar 2015 17:44:13 +0000
(18:44 +0100)
committer
Tobias Markus
<tobbi@mozilla-uk.org>
Sat, 7 Mar 2015 17:44:13 +0000
(18:44 +0100)
src/video/texture_manager.cpp
patch
|
blob
|
history
diff --git
a/src/video/texture_manager.cpp
b/src/video/texture_manager.cpp
index
6dba671
..
ae272b3
100644
(file)
--- a/
src/video/texture_manager.cpp
+++ b/
src/video/texture_manager.cpp
@@
-146,7
+146,17
@@
TextureManager::create_image_texture_raw(const std::string& filename, const Rect
throw std::runtime_error(msg.str());
}
throw std::runtime_error(msg.str());
}
- m_surfaces[filename] = image;
+ SDL_PixelFormat* format = image->format;
+ if(format->Rmask == 0 && format->Gmask == 0 && format->Bmask == 0 && format->Amask == 0) {
+ log_warning << "Wrong surface format for image " << filename << ". Compensating." << std::endl;
+
+ SDL_Surface* converted_surf = SDL_ConvertSurfaceFormat(image, SDL_PIXELFORMAT_RGBA8888, 0);
+ m_surfaces[filename] = converted_surf;
+ }
+ else
+ {
+ m_surfaces[filename] = image;
+ }
}
SDLSurfacePtr subimage(SDL_CreateRGBSurfaceFrom(static_cast<uint8_t*>(image->pixels) +
}
SDLSurfacePtr subimage(SDL_CreateRGBSurfaceFrom(static_cast<uint8_t*>(image->pixels) +