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;
if(align < 3) cairo_set_source_rgb (cr, 0.0, 0.0, 0.0);
else cairo_set_source_rgb (cr, 1.0, 1.0, 1.0);
cairo_show_text (cr, string);
+ cairo_destroy (cr);
+ cr = cairo_create (csBoardBackup);
+ cairo_select_font_face (cr, "Sans",
+ CAIRO_FONT_SLANT_NORMAL,
+ CAIRO_FONT_WEIGHT_BOLD);
+
+ cairo_set_font_size (cr, squareSize/4);
- /* free memory */
+ cairo_move_to (cr, xx-1, yy);
+ if(align < 3) cairo_set_source_rgb (cr, 0.0, 0.0, 0.0);
+ else cairo_set_source_rgb (cr, 1.0, 1.0, 1.0);
+ cairo_show_text (cr, string);
cairo_destroy (cr);
} else
XDrawString(xDisplay, xBoardWindow, hGC, xx, yy, string, 1);
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