Pārlūkot izejas kodu

Fixed bug 2628 - invalidate surface->map in SDL_SurfacePalette()

Wei Mingzhi

surface->map should be invalidated in SDL_SetSurfacePalette(), otherwise the palette would not be effective when blitting to another non-8bit surface which we previously blitted to.
Sam Lantinga 10 gadi atpakaļ
vecāks
revīzija
0c8e33764c
1 mainītis faili ar 6 papildinājumiem un 1 dzēšanām
  1. 6 1
      src/video/SDL_surface.c

+ 6 - 1
src/video/SDL_surface.c

@@ -145,7 +145,12 @@ SDL_SetSurfacePalette(SDL_Surface * surface, SDL_Palette * palette)
     if (!surface) {
         return SDL_SetError("SDL_SetSurfacePalette() passed a NULL surface");
     }
-    return SDL_SetPixelFormatPalette(surface->format, palette);
+    if (SDL_SetPixelFormatPalette(surface->format, palette) < 0) {
+        return -1;
+    }
+    SDL_InvalidateMap(surface->map);
+
+    return 0;
 }
 
 int