summaryrefslogtreecommitdiff
path: root/src/cairo-rectangle.c
diff options
context:
space:
mode:
authorVladimir Vukicevic <vladimir@pobox.com>2008-02-05 16:14:51 -0800
committerVladimir Vukicevic <vladimir@h-232.office.mozilla.org>2008-02-05 16:14:51 -0800
commit1d93e148766ded8f3105277f944849f6297974fb (patch)
tree7e0810101ba7c7369cc322555375deece1001da7 /src/cairo-rectangle.c
parent7b788ce7cace4fd24c568248c22b4ec6c88b563b (diff)
downloadcairo-1d93e148766ded8f3105277f944849f6297974fb.tar.gz
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.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/cairo-rectangle.c b/src/cairo-rectangle.c
index 58426f3ef..7ebdfb59d 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) {