summaryrefslogtreecommitdiff
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
parent7b788ce7cace4fd24c568248c22b4ec6c88b563b (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.
-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) {