From e36bb6ab024c606901104d9013860c097c01e60a Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Thu, 19 Feb 2004 21:13:24 +0000 Subject: [PATCH] Fixed a bug in detecting surface mapping changes --- src/video/SDL_pixels.c | 7 ++++++- src/video/SDL_surface.c | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/video/SDL_pixels.c b/src/video/SDL_pixels.c index 07441ca05..10dab14f7 100644 --- a/src/video/SDL_pixels.c +++ b/src/video/SDL_pixels.c @@ -246,7 +246,12 @@ SDL_PixelFormat *SDL_ReallocFormat(SDL_Surface *surface, int bpp, */ void SDL_FormatChanged(SDL_Surface *surface) { - surface->format_version++; + static int format_version = 0; + ++format_version; + if ( format_version < 0 ) { /* It wrapped... */ + format_version = 1; + } + surface->format_version = format_version; SDL_InvalidateMap(surface->map); } /* diff --git a/src/video/SDL_surface.c b/src/video/SDL_surface.c index a98e3fbe2..65fb0bc01 100644 --- a/src/video/SDL_surface.c +++ b/src/video/SDL_surface.c @@ -106,9 +106,9 @@ SDL_Surface * SDL_CreateRGBSurface (Uint32 flags, surface->hwdata = NULL; surface->locked = 0; surface->map = NULL; - surface->format_version = 0; surface->unused1 = 0; SDL_SetClipRect(surface, NULL); + SDL_FormatChanged(surface); /* Get the pixels */ if ( ((flags&SDL_HWSURFACE) == SDL_SWSURFACE) ||