aboutsummaryrefslogtreecommitdiff
path: root/drawing.c
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2017-09-29 14:29:56 +0100
committerSimon Tatham <anakin@pobox.com>2017-09-29 17:01:41 +0100
commita0435df8aa30af4ea24b4b375bc1e37600bc19fe (patch)
tree6589e57a13de313b05607cb36b8472b419d698ac /drawing.c
parentdf3b9cb845d5641dab16cbe071dca0ac2b7a97fb (diff)
downloadpuzzles-a0435df8aa30af4ea24b4b375bc1e37600bc19fe.zip
puzzles-a0435df8aa30af4ea24b4b375bc1e37600bc19fe.tar.gz
puzzles-a0435df8aa30af4ea24b4b375bc1e37600bc19fe.tar.bz2
puzzles-a0435df8aa30af4ea24b4b375bc1e37600bc19fe.tar.xz
draw_thick_line: Bound thickness by 1.0 below
A line less than 1 pixel wide may not be visible. So if a backend wants to draw a line whose width scaled by the window size, that line thickness ought to be at least 1.0. That way if the scale is small, but still big enough that there is a straightforward interpretation of the drawing primitives which is legible, we implement that interpretation. If a frontend draws a narrower line, making it wider might cause drawing anomalies, due to the line now having a bigger bounding box. These anomalies should occur only at small scales where currently the display is not legible, and we should fix them as we notice them. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Diffstat (limited to 'drawing.c')
-rw-r--r--drawing.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drawing.c b/drawing.c
index 7f4a6cf..a10a7f0 100644
--- a/drawing.c
+++ b/drawing.c
@@ -90,6 +90,8 @@ void draw_line(drawing *dr, int x1, int y1, int x2, int y2, int colour)
void draw_thick_line(drawing *dr, float thickness,
float x1, float y1, float x2, float y2, int colour)
{
+ if (thickness < 1.0)
+ thickness = 1.0;
if (dr->api->draw_thick_line) {
dr->api->draw_thick_line(dr->handle, thickness,
x1, y1, x2, y2, colour);