summaryrefslogtreecommitdiff
path: root/src/cairo-composite-rectangles-private.h
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2011-08-13 12:33:21 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2011-08-13 13:15:36 +0100
commit279f6ceb595412bef165a808f05caa3044ef102c (patch)
treeb94702c96796dc524402ba8330b6722f08761187 /src/cairo-composite-rectangles-private.h
parentd391f0908c404344aa6873fbca2b7bd6499009e0 (diff)
downloadcairo-279f6ceb595412bef165a808f05caa3044ef102c.tar.gz
Only reduce the clip if it is not in active use for the operation
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/cairo-composite-rectangles-private.h')
-rw-r--r--src/cairo-composite-rectangles-private.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/cairo-composite-rectangles-private.h b/src/cairo-composite-rectangles-private.h
index c6dac3092..dd5bd4156 100644
--- a/src/cairo-composite-rectangles-private.h
+++ b/src/cairo-composite-rectangles-private.h
@@ -53,11 +53,13 @@ CAIRO_BEGIN_DECLS
struct _cairo_composite_rectangles {
cairo_rectangle_int_t source;
cairo_rectangle_int_t mask;
- cairo_rectangle_int_t bounded; /* dst */
- cairo_rectangle_int_t unbounded; /* clip */
+ cairo_rectangle_int_t destination;
+
+ cairo_rectangle_int_t bounded; /* source? IN mask? IN unbounded */
+ cairo_rectangle_int_t unbounded; /* destination IN clip */
uint32_t is_bounded;
- cairo_clip_t *clip;
+ cairo_clip_t *clip; /* clip will be reduced to the minimal container */
};
cairo_private cairo_int_status_t
@@ -108,6 +110,10 @@ cairo_private cairo_int_status_t
_cairo_composite_rectangles_intersect_mask_extents (cairo_composite_rectangles_t *extents,
const cairo_box_t *box);
+cairo_private cairo_bool_t
+_cairo_composite_rectangles_can_reduce_clip (cairo_composite_rectangles_t *composite,
+ cairo_clip_t *clip);
+
cairo_private void
_cairo_composite_rectangles_fini (cairo_composite_rectangles_t *extents);