diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2011-08-20 16:29:00 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2011-08-20 16:34:38 +0100 |
commit | c3e990ea7ddc59d73d27d65420062855de265b72 (patch) | |
tree | a3e06908fffe64ce3156dbe42a103a190c79ff3a /src/cairo-surface-observer.c | |
parent | bb3d06a5dc6cd1eef368a9679a67ff8341860ac1 (diff) | |
download | cairo-c3e990ea7ddc59d73d27d65420062855de265b72.tar.gz |
observer: correct classification of aligned paths
We were misclassifying rectilinear paths as aligned strokes, which is
bogus until we analyse the offset path.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/cairo-surface-observer.c')
-rw-r--r-- | src/cairo-surface-observer.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/cairo-surface-observer.c b/src/cairo-surface-observer.c index 432e0d277..15190e921 100644 --- a/src/cairo-surface-observer.c +++ b/src/cairo-surface-observer.c @@ -201,14 +201,13 @@ classify_path (const cairo_path_fixed_t *path, if (path->fill_is_empty) classify = 0; else if (_cairo_path_fixed_fill_is_rectilinear (path)) - classify = 1; + classify = path->fill_maybe_region ? 1 : 2; } else { if (_cairo_path_fixed_stroke_is_rectilinear (path)) - classify = 1; + classify = 2; } - if (classify == 1 && ! path->fill_maybe_region) - classify = 2; - classify = 3 + path->has_curve_to != 0; + if (classify == -1) + classify = 3 + (path->has_curve_to != 0); return classify; } |