diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index c9dbdc3c1..a4d0ef2e1 100644 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -836,7 +836,10 @@ do { \ as soon as they are performed, so we need to buffer them */ ( ((flags&SDL_HWSURFACE) == SDL_SWSURFACE) && - (SDL_VideoSurface->flags&SDL_HWSURFACE)) + (SDL_VideoSurface->flags&SDL_HWSURFACE)) || + ( (flags&SDL_DOUBLEBUF) && + (SDL_VideoSurface->flags&SDL_HWSURFACE) && + !(SDL_VideoSurface->flags&SDL_DOUBLEBUF)) ) ) { SDL_CreateShadowSurface(bpp); if ( SDL_ShadowSurface == NULL ) {