Fixed bug #2881 - SDL_RLEsurface may encode RGB888 if it has no color key (Thanks Simon Hug)

To encode with BLEND mode, it needs a valid alpha channel
This commit is contained in:
Sylvain 2021-04-28 10:43:28 +02:00
parent b626429745
commit c93e3b3607
No known key found for this signature in database
GPG Key ID: 5F87E02E5BC0939E

View File

@ -1423,9 +1423,12 @@ SDL_RLESurface(SDL_Surface * surface)
return -1;
}
/* If we don't have colorkey or blending, nothing to do... */
flags = surface->map->info.flags;
if (!(flags & (SDL_COPY_COLORKEY | SDL_COPY_BLEND))) {
if (flags & SDL_COPY_COLORKEY) {
/* ok */
} else if ((flags & SDL_COPY_BLEND) && surface->format->Amask) {
/* ok */
} else {
/* If we don't have colorkey or blending, nothing to do... */
return -1;
}