fixed (reactivated) global animations (toons) for SDL 1.2 target
authorHolger Schemel <info@artsoft.org>
Sat, 2 Apr 2016 08:17:39 +0000 (10:17 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 2 Apr 2016 08:19:05 +0000 (10:19 +0200)
src/libgame/sdl.c
src/libgame/sdl.h
src/libgame/system.c

index 9db8347b86747d2b4a6ef52ddf46b9f0bcce101d..a204e45ff13332cb09019531c551f78e3c7a2119 100644 (file)
@@ -575,11 +575,41 @@ static SDL_Surface *SDLCreateScreen(DrawBuffer **backbuffer,
     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)
index 7ffb0c25e8dc5281ada68ad2de4a83506eed353e..3a00cb1136a5ea745960b8d776dc97b68b85e77d 100644 (file)
 #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
index 26691223ade3e4142d0c40ebfc2551b80f6c91f1..8df809cd787ba19cdc91041866a11d432c397597 100644 (file)
@@ -208,8 +208,10 @@ void InitGfxWindowInfo(int win_xsize, int win_ysize)
 
   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);