[cairo-commit] src/cairo-rectangle.c

Vladimir Vukicevic vladimir at kemper.freedesktop.org
Tue Feb 5 16:14:54 PST 2008


 src/cairo-rectangle.c |   10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

New commits:
commit 1d93e148766ded8f3105277f944849f6297974fb
Author: Vladimir Vukicevic <vladimir at pobox.com>
Date:   Tue Feb 5 16:14:51 2008 -0800

    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.

diff --git a/src/cairo-rectangle.c b/src/cairo-rectangle.c
index 58426f3..7ebdfb5 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) {


More information about the cairo-commit mailing list