rnd-20060819-1-src
[rocksndiamonds.git] / src / game_em / graphics.c
index 800ee03faaf8de2a6022b7f3cb5440c36492a99f..21ca0964ec8bfbeebc4bc190137ee2db6f07710d 100644 (file)
@@ -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
 }