X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fvideo%2Ftexture_manager.cpp;h=f334275d46f15b9fb35b45238aa2260096cfcbc0;hb=9af7ca781183b7d57410e5cd3b8bc7f8128ed1b0;hp=6dba671a4cd0a0d5bcae03d633dc043acd4a4edf;hpb=821ebaf57c3c02c2d74a1b87055bb55d88d9ae70;p=supertux.git diff --git a/src/video/texture_manager.cpp b/src/video/texture_manager.cpp index 6dba671a4..f334275d4 100644 --- a/src/video/texture_manager.cpp +++ b/src/video/texture_manager.cpp @@ -149,6 +149,12 @@ TextureManager::create_image_texture_raw(const std::string& filename, const Rect 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; + image = SDL_ConvertSurfaceFormat(image, SDL_PIXELFORMAT_RGBA8888, 0); + } + SDLSurfacePtr subimage(SDL_CreateRGBSurfaceFrom(static_cast(image->pixels) + rect.top * image->pitch + rect.left * image->format->BytesPerPixel,