summaryrefslogtreecommitdiff
path: root/src/cairo-clip-private.h
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2009-08-24 07:06:32 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2009-08-29 08:08:32 +0100
commit85094c4eee4e50ec724bf1bb54ecff6f7c1014bf (patch)
tree43dda4b766dbc427e5e9d88d0bacde7fb161f0e2 /src/cairo-clip-private.h
parentff0ca6d02a2e8901e9cfca31326c3fdc16e77e2f (diff)
downloadcairo-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.h8
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,