X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=draw.c;h=5af491826f7f260d313ede4b2036ce600d414bdb;hb=5234409d87b0b67a528acb623af316d8462899de;hp=ab9b693cf4feb6e38288c02122a2708e30c19740;hpb=15eab3074ed1dc476c19b48da66e82dea27399b5;p=xboard.git diff --git a/draw.c b/draw.c index ab9b693..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); } @@ -525,7 +526,7 @@ DrawGrid() } void -DrawBorder (int x, int y, int type) +DrawBorder (int x, int y, int type, int odd) { cairo_t *cr; char *col; @@ -537,11 +538,11 @@ DrawBorder (int x, int y, int type) } cr = cairo_create(csBoardWindow); cairo_set_antialias(cr, CAIRO_ANTIALIAS_NONE); - cairo_rectangle(cr, x, y, squareSize+lineGap, squareSize+lineGap); + cairo_rectangle(cr, x+odd/2., y+odd/2., squareSize+lineGap, squareSize+lineGap); SetPen(cr, lineGap, col, 0); cairo_stroke(cr); cairo_destroy(cr); - GraphExpose(currBoard, x - lineGap/2, y - lineGap/2, squareSize+2*lineGap, squareSize+2*lineGap); + 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