If a double-buffered surface was requested, and a plain hardware surface
was returned, we should create a shadow surface.
--- a/src/video/SDL_video.c Tue Jan 21 09:36:41 2003 +0000
+++ b/src/video/SDL_video.c Sun Jan 26 04:30:18 2003 +0000
@@ -836,7 +836,10 @@
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 ) {