diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2009-08-24 07:06:32 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2009-08-29 08:08:32 +0100 |
commit | 85094c4eee4e50ec724bf1bb54ecff6f7c1014bf (patch) | |
tree | 43dda4b766dbc427e5e9d88d0bacde7fb161f0e2 /src/cairo-path-fill.c | |
parent | ff0ca6d02a2e8901e9cfca31326c3fdc16e77e2f (diff) | |
download | cairo-85094c4eee4e50ec724bf1bb54ecff6f7c1014bf.tar.gz |
[clip] Eliminate redundant clips
First perform a simple geometric clip to catch the majority of cases where
an unaligned clip has been set outside the operation extents that can be
discarded without having to use an image surface.
This causes a dramatic increase of over 13x for the poppler-bug-12266
trace and little impact elsewhere for more sensible clippers.
Diffstat (limited to 'src/cairo-path-fill.c')
-rw-r--r-- | src/cairo-path-fill.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/cairo-path-fill.c b/src/cairo-path-fill.c index b74bf0aa4..50cd2183a 100644 --- a/src/cairo-path-fill.c +++ b/src/cairo-path-fill.c @@ -157,6 +157,9 @@ _cairo_path_fixed_fill_to_traps (const cairo_path_fixed_t *path, cairo_status_t status; _cairo_polygon_init (&polygon); + if (traps->has_limits) + _cairo_polygon_limit (&polygon, &traps->limits); + status = _cairo_path_fixed_fill_to_polygon (path, tolerance, &polygon); |