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-clip-private.h | |
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-clip-private.h')
-rw-r--r-- | src/cairo-clip-private.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/cairo-clip-private.h b/src/cairo-clip-private.h index 8a3e867ab..d045d12e3 100644 --- a/src/cairo-clip-private.h +++ b/src/cairo-clip-private.h @@ -79,7 +79,7 @@ cairo_private cairo_status_t _cairo_clip_init_rectangle (cairo_clip_t *clip, const cairo_rectangle_int_t *rect); -cairo_private void +cairo_private_no_warn cairo_clip_t * _cairo_clip_init_copy (cairo_clip_t *clip, cairo_clip_t *other); cairo_private cairo_status_t @@ -90,6 +90,12 @@ _cairo_clip_init_copy_transformed (cairo_clip_t *clip, cairo_private void _cairo_clip_reset (cairo_clip_t *clip); +#define _cairo_clip_fini(clip) _cairo_clip_reset (clip) + +cairo_private cairo_status_t +_cairo_clip_rectangle (cairo_clip_t *clip, + const cairo_rectangle_int_t *rectangle); + cairo_private cairo_status_t _cairo_clip_clip (cairo_clip_t *clip, const cairo_path_fixed_t *path, |