X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=draw.c;h=5af491826f7f260d313ede4b2036ce600d414bdb;hb=5234409d87b0b67a528acb623af316d8462899de;hp=f811dbe735e8af88365a3b75881d54955b50c66c;hpb=18f63518ed5d7c91bcaf737924e6ccf31ad3e0d4;p=xboard.git diff --git a/draw.c b/draw.c index f811dbe..5af4918 100644 --- a/draw.c +++ b/draw.c @@ -502,6 +502,7 @@ DrawGrid() { /* draws a grid starting around Nx, Ny squares starting at x,y */ int i; + float odd = (lineGap & 1)/2.; cairo_t *cr; /* get a cairo_t */ @@ -513,8 +514,8 @@ DrawGrid() /* lines in X */ for (i = 0; i < BOARD_WIDTH + BOARD_HEIGHT + 2; i++) { - cairo_move_to (cr, gridSegments[i].x1, gridSegments[i].y1); - cairo_line_to (cr, gridSegments[i].x2, gridSegments[i].y2); + cairo_move_to (cr, gridSegments[i].x1 + odd, gridSegments[i].y1 + odd); + cairo_line_to (cr, gridSegments[i].x2 + odd, gridSegments[i].y2 + odd); cairo_stroke (cr); } @@ -541,7 +542,7 @@ DrawBorder (int x, int y, int type, int odd) SetPen(cr, lineGap, col, 0); cairo_stroke(cr); cairo_destroy(cr); - GraphExpose(currBoard, x - lineGap/2, y - lineGap/2, squareSize+lineGap+odd, squareSize+lineGap+odd); + GraphExpose(currBoard, x - lineGap/2, y - lineGap/2, squareSize+2*lineGap+odd, squareSize+2*lineGap+odd); } static int @@ -604,7 +605,8 @@ BlankSquare (cairo_surface_t *dest, int x, int y, int color, ChessSquare piece, case 2: col = "#000000"; break; } SetPen(cr, 2.0, col, 0); - cairo_rectangle (cr, x, y, squareSize, squareSize); + cairo_rectangle (cr, fac*x, fac*y, squareSize, squareSize); + cairo_set_antialias (cr, CAIRO_ANTIALIAS_NONE); cairo_fill (cr); cairo_destroy (cr); } @@ -653,6 +655,7 @@ void DrawDot (int marker, int x, int y, int r) { // used for atomic captures; no need to draw on backup DoDrawDot(csBoardWindow, marker, x, y, r); + GraphExpose(currBoard, x-r, y-r, 2*r, 2*r); } void