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.
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