Commit 0c8e33764c5ee1250eae94e1f93c7262398e20dd

Sam Lantinga 2014-07-07T21:21:05

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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
diff --git a/src/video/SDL_surface.c b/src/video/SDL_surface.c
index 7caf0fc..ccf89ca 100644
--- a/src/video/SDL_surface.c
+++ b/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