X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsdl.c;h=457f567ad59f461b3b90266785d9ec014bfa969d;hb=6b6c9eb24c469d8b1fea8d76172b549b45f7cd77;hp=1184acd84a4b227af94424e920b8b201bdb42344;hpb=f73405762b7a66ebed17c0f6fa56e909d7e5626f;p=rocksndiamonds.git diff --git a/src/libgame/sdl.c b/src/libgame/sdl.c index 1184acd8..457f567a 100644 --- a/src/libgame/sdl.c +++ b/src/libgame/sdl.c @@ -273,7 +273,7 @@ static void SDLSetWindowIcon(char *basename) if ((surface = IMG_Load(filename)) == NULL) { - Error(ERR_WARN, "IMG_Load() failed: %s", SDL_GetError()); + Error(ERR_WARN, "IMG_Load('%s') failed: %s", basename, SDL_GetError()); return; } @@ -353,6 +353,11 @@ SDL_Surface *SDLGetNativeSurface(SDL_Surface *surface) if (new_surface == NULL) Error(ERR_EXIT, "SDL_ConvertSurface() failed: %s", SDL_GetError()); + // workaround for a bug in SDL 2.0.12 (which does not convert the color key) + if (SDLHasColorKey(surface) && !SDLHasColorKey(new_surface)) + SDL_SetColorKey(new_surface, SET_TRANSPARENT_PIXEL, + SDLGetColorKey(surface)); + return new_surface; } @@ -2239,7 +2244,8 @@ Bitmap *SDLLoadImage(char *filename) // load image to temporary surface if ((sdl_image_tmp = IMG_Load(filename)) == NULL) - Error(ERR_EXIT, "IMG_Load() failed: %s", SDL_GetError()); + Error(ERR_EXIT, "IMG_Load('%s') failed: %s", getBaseNamePtr(filename), + SDL_GetError()); print_timestamp_time("IMG_Load");