X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_em%2Fgraphics.c;h=21ca0964ec8bfbeebc4bc190137ee2db6f07710d;hb=a8613c2d9809cf90870f7c33b6fda80957241827;hp=800ee03faaf8de2a6022b7f3cb5440c36492a99f;hpb=c0c5862d9ee59c70412b1c35e558101b109a8ec9;p=rocksndiamonds.git diff --git a/src/game_em/graphics.c b/src/game_em/graphics.c index 800ee03f..21ca0964 100644 --- a/src/game_em/graphics.c +++ b/src/game_em/graphics.c @@ -93,7 +93,7 @@ void BlitScreenToBitmap_EM(Bitmap *target_bitmap) } } -void blitscreen(void) +void BackToFront_EM(void) { static boolean scrolling_last = FALSE; int left = screen_x / TILEX; @@ -101,6 +101,8 @@ void blitscreen(void) boolean scrolling = (screen_x % TILEX != 0 || screen_y % TILEY != 0); int x, y; + SyncDisplay(); + if (redraw_tiles > REDRAWTILES_THRESHOLD || scrolling || scrolling_last) { /* blit all (up to four) parts of the scroll buffer to the backbuffer */ @@ -126,6 +128,8 @@ void blitscreen(void) } } + FlushDisplay(); + for (x = 0; x < MAX_BUF_XSIZE; x++) for (y = 0; y < MAX_BUF_YSIZE; y++) redraw[x][y] = FALSE; @@ -134,6 +138,11 @@ void blitscreen(void) scrolling_last = scrolling; } +void blitscreen(void) +{ + BackToFront_EM(); +} + static void DrawLevelField_EM(int x, int y, int sx, int sy, boolean draw_masked) { @@ -869,14 +878,16 @@ void RedrawPlayfield_EM(boolean force_redraw) blitplayer(&ply[i]); blitscreen(); - FlushDisplay(); + Delay(wait_delay_value); /* scroll second step to align at full tile size */ screen_x -= dxx; screen_y -= dyy; +#if 0 SyncDisplay(); +#endif animscreen(); @@ -884,7 +895,7 @@ void RedrawPlayfield_EM(boolean force_redraw) blitplayer(&ply[i]); blitscreen(); - FlushDisplay(); + Delay(wait_delay_value); } @@ -1028,12 +1039,12 @@ void RedrawPlayfield_EM(boolean force_redraw) for (i = 0; i < MAX_PLAYERS; i++) blitplayer(&ply[i]); +#if 0 #if 0 SyncDisplay(); +#endif blitscreen(); - - FlushDisplay(); #endif }