Pārlūkot izejas kodu

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

Sylvain 4 gadi atpakaļ
vecāks
revīzija
c93e3b3607
1 mainītis faili ar 6 papildinājumiem un 3 dzēšanām
  1. 6 3
      src/video/SDL_RLEaccel.c

+ 6 - 3
src/video/SDL_RLEaccel.c

@@ -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;
     }