Error(ERR_WARN, "SDL_CreateWindow() failed: %s", SDL_GetError());
}
-#else
- new_surface = SDL_SetVideoMode(width, height, video.depth, surface_flags);
+#else // TARGET_SDL
- if (new_surface == NULL)
+ if ((*backbuffer)->surface)
+ {
+ SDL_FreeSurface((*backbuffer)->surface);
+ (*backbuffer)->surface = NULL;
+ }
+
+ if (gfx.final_screen_bitmap == NULL)
+ gfx.final_screen_bitmap = CreateBitmapStruct();
+
+ gfx.final_screen_bitmap->width = width;
+ gfx.final_screen_bitmap->height = height;
+
+ gfx.final_screen_bitmap->surface =
+ SDL_SetVideoMode(width, height, video.depth, surface_flags);
+
+ if (gfx.final_screen_bitmap->surface != NULL)
+ {
+ new_surface =
+ SDL_CreateRGBSurface(surface_flags, width, height, video.depth, 0,0,0, 0);
+
+ if (new_surface == NULL)
+ Error(ERR_WARN, "SDL_CreateRGBSurface() failed: %s", SDL_GetError());
+
+#if 0
+ new_surface = gfx.final_screen_bitmap->surface;
+ gfx.final_screen_bitmap = NULL;
+#endif
+
+ }
+ else
+ {
Error(ERR_WARN, "SDL_SetVideoMode() failed: %s", SDL_GetError());
+ }
#endif
#if defined(TARGET_SDL2)
#define FULLSCREEN_STATUS FULLSCREEN_AVAILABLE
#endif
+#if defined(TARGET_SDL2)
#define USE_FINAL_SCREEN_BITMAP FALSE
+#else
+#define USE_FINAL_SCREEN_BITMAP TRUE
+#endif
#define CURSOR_MAX_WIDTH 32
#define CURSOR_MAX_HEIGHT 32
ReCreateBitmap(&gfx.background_bitmap, win_xsize, win_ysize, DEFAULT_DEPTH);
+#if defined(TARGET_SDL2)
#if USE_FINAL_SCREEN_BITMAP
ReCreateBitmap(&gfx.final_screen_bitmap, win_xsize, win_ysize, DEFAULT_DEPTH);
+#endif
#endif
ReCreateBitmap(&gfx.fade_bitmap_source, win_xsize, win_ysize, DEFAULT_DEPTH);