diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2011-07-14 21:19:54 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2011-07-19 21:14:34 +0100 |
commit | b132fae5e843c329d1414d1a65b2e8d66b99852f (patch) | |
tree | 7df5e21300eefe3abcc30616b22d7f5d3248b4d4 /src/cairo-boxes-private.h | |
parent | f58ade7bace8c82d0ea6740f56d227696181d616 (diff) | |
download | cairo-b132fae5e843c329d1414d1a65b2e8d66b99852f.tar.gz |
clip: Rudimentary support for clip-polygon extraction
Step 1, fix the failings sighted recently by tracking clip-boxes as an
explicit property of the clipping and of composition.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/cairo-boxes-private.h')
-rw-r--r-- | src/cairo-boxes-private.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/cairo-boxes-private.h b/src/cairo-boxes-private.h index 3af0fbdef..619545f61 100644 --- a/src/cairo-boxes-private.h +++ b/src/cairo-boxes-private.h @@ -58,6 +58,10 @@ cairo_private void _cairo_boxes_init (cairo_boxes_t *boxes); cairo_private void +_cairo_boxes_init_with_clip (cairo_boxes_t *boxes, + cairo_clip_t *clip); + +cairo_private void _cairo_boxes_init_for_array (cairo_boxes_t *boxes, cairo_box_t *array, int num_boxes); @@ -69,16 +73,39 @@ _cairo_boxes_limit (cairo_boxes_t *boxes, cairo_private cairo_status_t _cairo_boxes_add (cairo_boxes_t *boxes, + cairo_antialias_t antialias, const cairo_box_t *box); cairo_private void _cairo_boxes_extents (const cairo_boxes_t *boxes, cairo_rectangle_int_t *extents); +cairo_private cairo_box_t * +_cairo_boxes_to_array (const cairo_boxes_t *boxes, + int *num_boxes, + cairo_bool_t force_allocation); + +static inline void +_cairo_boxes_free_array (const cairo_boxes_t *boxes, + cairo_box_t *box) +{ + if (box != boxes->chunks.base) + free(box); +} + +cairo_private cairo_status_t +_cairo_boxes_intersect (const cairo_boxes_t *a, + const cairo_boxes_t *b, + cairo_boxes_t *out); + cairo_private void _cairo_boxes_clear (cairo_boxes_t *boxes); cairo_private void _cairo_boxes_fini (cairo_boxes_t *boxes); +cairo_private void +_cairo_debug_print_boxes (FILE *stream, + const cairo_boxes_t *boxes); + #endif /* CAIRO_BOXES_H */ |