mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-21 08:01:30 -07:00
Hardwiring the grid line width to 1 is really bad for printing. Use
a slightly more conventional method of drawing the grid lines, and thereby fix printing. [originally from svn r7335]
This commit is contained in:
33
filling.c
33
filling.c
@ -1121,18 +1121,32 @@ static void draw_square(drawing *dr, game_drawstate *ds, int x, int y,
|
|||||||
assert(dr);
|
assert(dr);
|
||||||
assert(ds);
|
assert(ds);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Clip to the grid square.
|
||||||
|
*/
|
||||||
|
clip(dr, BORDER + x*TILE_SIZE, BORDER + y*TILE_SIZE,
|
||||||
|
TILE_SIZE, TILE_SIZE);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Clear the square.
|
* Clear the square.
|
||||||
*/
|
*/
|
||||||
draw_rect(dr,
|
draw_rect(dr,
|
||||||
BORDER + x*TILE_SIZE + 1,
|
BORDER + x*TILE_SIZE,
|
||||||
BORDER + y*TILE_SIZE + 1,
|
BORDER + y*TILE_SIZE,
|
||||||
TILE_SIZE - 1,
|
TILE_SIZE,
|
||||||
TILE_SIZE - 1,
|
TILE_SIZE,
|
||||||
(flags & CURSOR_BG ? COL_HIGHLIGHT :
|
(flags & CURSOR_BG ? COL_HIGHLIGHT :
|
||||||
flags & ERROR_BG ? COL_ERROR :
|
flags & ERROR_BG ? COL_ERROR :
|
||||||
flags & CORRECT_BG ? COL_CORRECT : COL_BACKGROUND));
|
flags & CORRECT_BG ? COL_CORRECT : COL_BACKGROUND));
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Draw the grid lines.
|
||||||
|
*/
|
||||||
|
draw_line(dr, BORDER + x*TILE_SIZE, BORDER + y*TILE_SIZE,
|
||||||
|
BORDER + (x+1)*TILE_SIZE, BORDER + y*TILE_SIZE, COL_GRID);
|
||||||
|
draw_line(dr, BORDER + x*TILE_SIZE, BORDER + y*TILE_SIZE,
|
||||||
|
BORDER + x*TILE_SIZE, BORDER + (y+1)*TILE_SIZE, COL_GRID);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Draw the number.
|
* Draw the number.
|
||||||
*/
|
*/
|
||||||
@ -1210,11 +1224,13 @@ static void draw_square(drawing *dr, game_drawstate *ds, int x, int y,
|
|||||||
BORDER_WIDTH,
|
BORDER_WIDTH,
|
||||||
COL_GRID);
|
COL_GRID);
|
||||||
|
|
||||||
|
unclip(dr);
|
||||||
|
|
||||||
draw_update(dr,
|
draw_update(dr,
|
||||||
BORDER + x*TILE_SIZE - 1,
|
BORDER + x*TILE_SIZE,
|
||||||
BORDER + y*TILE_SIZE - 1,
|
BORDER + y*TILE_SIZE,
|
||||||
TILE_SIZE + 3,
|
TILE_SIZE,
|
||||||
TILE_SIZE + 3);
|
TILE_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void draw_grid(drawing *dr, game_drawstate *ds, game_state *state,
|
static void draw_grid(drawing *dr, game_drawstate *ds, game_state *state,
|
||||||
@ -1463,6 +1479,7 @@ static void game_print(drawing *dr, game_state *state, int tilesize)
|
|||||||
/*
|
/*
|
||||||
* Draw grid.
|
* Draw grid.
|
||||||
*/
|
*/
|
||||||
|
print_line_width(dr, TILE_SIZE / 64);
|
||||||
draw_grid(dr, ds, state, NULL, FALSE, borders, FALSE);
|
draw_grid(dr, ds, state, NULL, FALSE, borders, FALSE);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Reference in New Issue
Block a user