From: Holger Schemel Date: Mon, 23 May 2016 23:49:03 +0000 (+0200) Subject: prepared global animation functions to update different screen buffers X-Git-Tag: 4.0.0.0-rc3~58 X-Git-Url: https://git.artsoft.org/?a=commitdiff_plain;h=ee9e184f386884046f1a9c8720c0ff212738b46a;p=rocksndiamonds.git prepared global animation functions to update different screen buffers --- diff --git a/src/anim.c b/src/anim.c index 7dc62198..7f167070 100644 --- a/src/anim.c +++ b/src/anim.c @@ -517,7 +517,7 @@ void InitGlobalAnimations() InitGlobalAnimControls(); } -void DrawGlobalAnimationsExt(int drawing_stage) +void DrawGlobalAnimationsExt(int drawing_target, int drawing_stage) { int mode_nr; @@ -671,9 +671,9 @@ void DrawGlobalAnimationsExt(int drawing_stage) } } -void DrawGlobalAnimations(int drawing_stage) +void DrawGlobalAnimations(int drawing_target, int drawing_stage) { - DrawGlobalAnimationsExt(drawing_stage); + DrawGlobalAnimationsExt(drawing_target, drawing_stage); } boolean SetGlobalAnimPart_Viewport(struct GlobalAnimPartControlInfo *part) diff --git a/src/anim.h b/src/anim.h index b55a550f..99de93ea 100644 --- a/src/anim.h +++ b/src/anim.h @@ -16,6 +16,6 @@ int getAnimationFrame(int, int, int, int, int); void InitGlobalAnimations(void); -void DrawGlobalAnimations(int); +void DrawGlobalAnimations(int, int); #endif diff --git a/src/libgame/sdl.c b/src/libgame/sdl.c index 4546e67d..a88201fd 100644 --- a/src/libgame/sdl.c +++ b/src/libgame/sdl.c @@ -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_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 || diff --git a/src/libgame/system.c b/src/libgame/system.c index a5ebc4f0..8b81ede9 100644 --- a/src/libgame/system.c +++ b/src/libgame/system.c @@ -241,7 +241,7 @@ void InitGfxDrawBusyAnimFunction(void (*draw_busy_anim_function)(void)) gfx.draw_busy_anim_function = draw_busy_anim_function; } -void InitGfxDrawGlobalAnimFunction(void (*draw_global_anim_function)(int)) +void InitGfxDrawGlobalAnimFunction(void (*draw_global_anim_function)(int, int)) { gfx.draw_global_anim_function = draw_global_anim_function; } diff --git a/src/libgame/system.h b/src/libgame/system.h index b7da38b5..151f8355 100644 --- a/src/libgame/system.h +++ b/src/libgame/system.h @@ -865,7 +865,7 @@ struct GfxInfo int anim_random_frame; void (*draw_busy_anim_function)(void); - void (*draw_global_anim_function)(int); + void (*draw_global_anim_function)(int, int); void (*draw_global_border_function)(int); int cursor_mode; @@ -1366,7 +1366,7 @@ void InitGfxWindowInfo(int, int); void InitGfxScrollbufferInfo(int, int); void InitGfxClipRegion(boolean, int, int, int, int); void InitGfxDrawBusyAnimFunction(void (*draw_busy_anim_function)(void)); -void InitGfxDrawGlobalAnimFunction(void (*draw_global_anim_function)(int)); +void InitGfxDrawGlobalAnimFunction(void (*draw_global_anim_function)(int, int)); void InitGfxDrawGlobalBorderFunction(void (*draw_global_border_function)(int)); void InitGfxCustomArtworkInfo(); void InitGfxOtherSettings();