diff options
author | Vladimir Vukicevic <vladimir@pobox.com> | 2008-02-05 16:14:51 -0800 |
---|---|---|
committer | Vladimir Vukicevic <vladimir@h-232.office.mozilla.org> | 2008-02-05 16:14:51 -0800 |
commit | 1d93e148766ded8f3105277f944849f6297974fb (patch) | |
tree | 7e0810101ba7c7369cc322555375deece1001da7 /src/cairo-rectangle.c | |
parent | 7b788ce7cace4fd24c568248c22b4ec6c88b563b (diff) |
Followup patch to dashed stroke optimization
Make sure that we don't test lines that start or end inside the box,
since our algorithm will find intersections on the wrong ends on the
line, and not count them.
Diffstat (limited to 'src/cairo-rectangle.c')
-rw-r--r-- | src/cairo-rectangle.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/cairo-rectangle.c b/src/cairo-rectangle.c index 58426f3e..7ebdfb59 100644 --- a/src/cairo-rectangle.c +++ b/src/cairo-rectangle.c @@ -111,8 +111,14 @@ _cairo_box_intersects_line (cairo_box_t *box, cairo_line_t *line) cairo_fixed_t t1, t2, t3, t4; cairo_int64_t t1y, t2y, t3x, t4x; - cairo_fixed_t xlen = P2x - P1x; - cairo_fixed_t ylen = P2y - P1y; + cairo_fixed_t xlen, ylen; + + if (_cairo_box_contains_point(box, &line->p1) || + _cairo_box_contains_point(box, &line->p2)) + return TRUE; + + xlen = P2x - P1x; + ylen = P2y - P1y; if (xlen) { if (xlen > 0) { |