Remove acceleration trick
[xboard.git] / xboard.c
index 5dc557c..a0fa610 100644 (file)
--- a/xboard.c
+++ b/xboard.c
@@ -1057,6 +1057,20 @@ InitDrawingSizes (BoardSize boardSize, int flags)
        int p;
        for(p=0; p<=(int)WhiteKing; p++)
           pngPieceBitmaps[i][p] = pngPieceBitmaps2[i][p]; // defaults
+       if(gameInfo.variant == VariantShogi) {
+          pngPieceBitmaps[i][(int)WhiteCannon] = pngPieceBitmaps2[i][(int)WhiteKing+1];
+          pngPieceBitmaps[i][(int)WhiteNightrider] = pngPieceBitmaps2[i][(int)WhiteKing+2];
+          pngPieceBitmaps[i][(int)WhiteSilver] = pngPieceBitmaps2[i][(int)WhiteKing+3];
+          pngPieceBitmaps[i][(int)WhiteGrasshopper] = pngPieceBitmaps2[i][(int)WhiteKing+4];
+          pngPieceBitmaps[i][(int)WhiteQueen] = pngPieceBitmaps2[i][(int)WhiteLance];
+       }
+       if(gameInfo.variant == VariantGothic) {
+          pngPieceBitmaps[i][(int)WhiteMarshall] = pngPieceBitmaps2[i][(int)WhiteSilver];
+       }
+       if(gameInfo.variant == VariantSChess) {
+          pngPieceBitmaps[i][(int)WhiteAngel]    = pngPieceBitmaps2[i][(int)WhiteFalcon];
+          pngPieceBitmaps[i][(int)WhiteMarshall] = pngPieceBitmaps2[i][(int)WhiteAlfil];
+       }
     }
     oldMono = -10; // kludge to force recreation of animation masks
     oldVariant = gameInfo.variant;
@@ -4132,14 +4146,17 @@ CairoOverlayPiece (ChessSquare piece, cairo_surface_t *dest)
   static int oldSize;
   static cairo_t *pieceSource;
   extern int doubleClick; // in backend.c
-  if(piece != oldPiece || squareSize != oldSize) { // try make it faster by only changing cr if we need other piece
-    if(pieceSource) cairo_destroy (pieceSource);
-    pieceSource = cairo_create (dest);
-    cairo_set_source_surface (pieceSource, pngPieceBitmaps[!White(piece)][piece % BlackPawn], 0, 0);
-    oldPiece = piece; oldSize = squareSize;
-  }
+//  if(piece != oldPiece || squareSize != oldSize) { // try make it faster by only changing cr if we need other piece
+//    if(pieceSource) cairo_destroy (pieceSource);
+//    pieceSource = cairo_create (dest);
+//    cairo_set_source_surface (pieceSource, pngPieceBitmaps[!White(piece)][piece % BlackPawn], 0, 0);
+//    oldPiece = piece; oldSize = squareSize;
+//  }
+  pieceSource = cairo_create (dest);
+  cairo_set_source_surface (pieceSource, pngPieceBitmaps[!White(piece)][piece % BlackPawn], 0, 0);
   if(doubleClick) cairo_paint_with_alpha (pieceSource, 0.6);
   else cairo_paint(pieceSource);
+  cairo_destroy (pieceSource);
 }
 
 void