Browse Source

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 11 years ago
parent
commit
0c8e33764c
1 changed files with 6 additions and 1 deletions
  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