prepared global animation functions to update different screen buffers
[rocksndiamonds.git] / src / libgame / sdl.c
index ebfd6a5c48b279fc7ff84abd233f241b2ade0d9a..a88201fde27fb1ea3ea29dcbe34a8e633cd8cc42 100644 (file)
@@ -42,19 +42,19 @@ void SDLLimitScreenUpdates(boolean enable)
   limit_screen_updates = enable;
 }
 
-static void FinalizeScreen()
+static void FinalizeScreen(int draw_target)
 {
   // copy global animations to render target buffer, if defined (below border)
   if (gfx.draw_global_anim_function != NULL)
-    gfx.draw_global_anim_function(DRAW_GLOBAL_ANIM_STAGE_1);
+    gfx.draw_global_anim_function(draw_target, DRAW_GLOBAL_ANIM_STAGE_1);
 
   // copy global masked border to render target buffer, if defined
   if (gfx.draw_global_border_function != NULL)
-    gfx.draw_global_border_function(DRAW_BORDER_TO_SCREEN);
+    gfx.draw_global_border_function(draw_target);
 
   // copy global animations to render target buffer, if defined (above border)
   if (gfx.draw_global_anim_function != NULL)
-    gfx.draw_global_anim_function(DRAW_GLOBAL_ANIM_STAGE_2);
+    gfx.draw_global_anim_function(draw_target, DRAW_GLOBAL_ANIM_STAGE_2);
 }
 
 static void UpdateScreenExt(SDL_Rect *rect, boolean with_frame_delay)
@@ -95,7 +95,7 @@ static void UpdateScreenExt(SDL_Rect *rect, boolean with_frame_delay)
     BlitBitmap(backbuffer, gfx.final_screen_bitmap, 0, 0,
               gfx.win_xsize, gfx.win_ysize, 0, 0);
 
-    FinalizeScreen();
+    FinalizeScreen(DRAW_TO_SCREEN);
 
     screen = gfx.final_screen_bitmap->surface;
 
@@ -142,7 +142,7 @@ static void UpdateScreenExt(SDL_Rect *rect, boolean with_frame_delay)
     SDL_RenderCopy(sdl_renderer, sdl_texture_stream, NULL, NULL);
 
   if (video.screen_rendering_mode != SPECIAL_RENDERING_BITMAP)
-    FinalizeScreen();
+    FinalizeScreen(DRAW_TO_SCREEN);
 
   // when using target texture, copy it to screen buffer
   if (video.screen_rendering_mode == SPECIAL_RENDERING_TARGET ||
@@ -948,22 +948,22 @@ void SDLFadeRectangle(Bitmap *bitmap_cross, int x, int y, int width, int height,
     SDL_BlitSurface(surface_cross,  &src_rect, surface_source, &src_rect);
     SDL_BlitSurface(surface_screen, &dst_rect, surface_target, &src_rect);
 
-    draw_global_border_function(DRAW_BORDER_TO_FADE_SOURCE);
-    draw_global_border_function(DRAW_BORDER_TO_FADE_TARGET);
+    draw_global_border_function(DRAW_TO_FADE_SOURCE);
+    draw_global_border_function(DRAW_TO_FADE_TARGET);
   }
   else if (fade_mode & FADE_TYPE_FADE_IN)
   {
     SDL_BlitSurface(surface_black,  &src_rect, surface_source, &src_rect);
     SDL_BlitSurface(surface_screen, &dst_rect, surface_target, &src_rect);
 
-    draw_global_border_function(DRAW_BORDER_TO_FADE_TARGET);
+    draw_global_border_function(DRAW_TO_FADE_TARGET);
   }
   else         /* FADE_TYPE_FADE_OUT */
   {
     SDL_BlitSurface(surface_screen, &dst_rect, surface_source, &src_rect);
     SDL_BlitSurface(surface_black,  &src_rect, surface_target, &src_rect);
 
-    draw_global_border_function(DRAW_BORDER_TO_FADE_SOURCE);
+    draw_global_border_function(DRAW_TO_FADE_SOURCE);
   }
 
   time_current = SDL_GetTicks();