diff --git a/src/Makefile.sources b/src/Makefile.sources index c717e9faf..7c42e793e 100644 --- a/src/Makefile.sources +++ b/src/Makefile.sources @@ -60,6 +60,7 @@ cairo_private = \ cairo-box-inline.h \ cairo-boxes-private.h \ cairo-cache-private.h \ + cairo-clip-inline.h \ cairo-clip-private.h \ cairo-combsort-private.h \ cairo-compiler-private.h \ diff --git a/src/cairo-clip-boxes.c b/src/cairo-clip-boxes.c index 569e1d8a2..bbb419788 100644 --- a/src/cairo-clip-boxes.c +++ b/src/cairo-clip-boxes.c @@ -42,6 +42,7 @@ #include "cairoint.h" #include "cairo-box-inline.h" +#include "cairo-clip-inline.h" #include "cairo-clip-private.h" #include "cairo-error-private.h" #include "cairo-freed-pool-private.h" diff --git a/src/cairo-clip-inline.h b/src/cairo-clip-inline.h new file mode 100644 index 000000000..a9f232692 --- /dev/null +++ b/src/cairo-clip-inline.h @@ -0,0 +1,83 @@ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2005 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is Red Hat, Inc. + * + * Contributor(s): + * Kristian Høgsberg + * Chris Wilson + */ + +#ifndef CAIRO_CLIP_INLINE_H +#define CAIRO_CLIP_INLINE_H + +#include "cairo-clip-private.h" + +static inline cairo_bool_t _cairo_clip_is_all_clipped(const cairo_clip_t *clip) +{ + return clip == &__cairo_clip_all; +} + +static inline cairo_clip_t * +_cairo_clip_set_all_clipped (cairo_clip_t *clip) +{ + _cairo_clip_destroy (clip); + return (cairo_clip_t *) &__cairo_clip_all; +} + +static inline cairo_clip_t * +_cairo_clip_copy_intersect_rectangle (const cairo_clip_t *clip, + const cairo_rectangle_int_t *r) +{ + return _cairo_clip_intersect_rectangle (_cairo_clip_copy (clip), r); +} + +static inline cairo_clip_t * +_cairo_clip_copy_intersect_clip (const cairo_clip_t *clip, + const cairo_clip_t *other) +{ + return _cairo_clip_intersect_clip (_cairo_clip_copy (clip), other); +} + +static inline void +_cairo_clip_steal_boxes (cairo_clip_t *clip, cairo_boxes_t *boxes) +{ + _cairo_boxes_init_for_array (boxes, clip->boxes, clip->num_boxes); + clip->boxes = NULL; + clip->num_boxes = 0; +} + +static inline void +_cairo_clip_unsteal_boxes (cairo_clip_t *clip, cairo_boxes_t *boxes) +{ + clip->boxes = boxes->chunks.base; + clip->num_boxes = boxes->num_boxes; +} + +#endif /* CAIRO_CLIP_INLINE_H */ diff --git a/src/cairo-clip-polygon.c b/src/cairo-clip-polygon.c index d5208d303..f40faefba 100644 --- a/src/cairo-clip-polygon.c +++ b/src/cairo-clip-polygon.c @@ -36,6 +36,7 @@ */ #include "cairoint.h" +#include "cairo-clip-inline.h" #include "cairo-clip-private.h" #include "cairo-error-private.h" #include "cairo-freed-pool-private.h" diff --git a/src/cairo-clip-private.h b/src/cairo-clip-private.h index c1c24d8c0..5fc05a64e 100644 --- a/src/cairo-clip-private.h +++ b/src/cairo-clip-private.h @@ -84,18 +84,6 @@ _cairo_clip_destroy (cairo_clip_t *clip); cairo_private extern const cairo_clip_t __cairo_clip_all; -static inline cairo_bool_t _cairo_clip_is_all_clipped(const cairo_clip_t *clip) -{ - return clip == &__cairo_clip_all; -} - -static inline cairo_clip_t * -_cairo_clip_set_all_clipped (cairo_clip_t *clip) -{ - _cairo_clip_destroy (clip); - return (cairo_clip_t *) &__cairo_clip_all; -} - cairo_private cairo_clip_t * _cairo_clip_copy (const cairo_clip_t *clip); @@ -122,25 +110,10 @@ cairo_private cairo_clip_t * _cairo_clip_intersect_rectangle (cairo_clip_t *clip, const cairo_rectangle_int_t *rectangle); -static inline cairo_clip_t * -_cairo_clip_copy_intersect_rectangle (const cairo_clip_t *clip, - const cairo_rectangle_int_t *r) -{ - return _cairo_clip_intersect_rectangle (_cairo_clip_copy (clip), r); -} - cairo_private cairo_clip_t * _cairo_clip_intersect_clip (cairo_clip_t *clip, const cairo_clip_t *other); -static inline cairo_clip_t * -_cairo_clip_copy_intersect_clip (const cairo_clip_t *clip, - const cairo_clip_t *other) -{ - return _cairo_clip_intersect_clip (_cairo_clip_copy (clip), other); -} - - cairo_private cairo_clip_t * _cairo_clip_intersect_box (cairo_clip_t *clip, const cairo_box_t *box); @@ -178,21 +151,6 @@ _cairo_clip_combine_with_surface (const cairo_clip_t *clip, cairo_surface_t *dst, int dst_x, int dst_y); -static inline void -_cairo_clip_steal_boxes (cairo_clip_t *clip, cairo_boxes_t *boxes) -{ - _cairo_boxes_init_for_array (boxes, clip->boxes, clip->num_boxes); - clip->boxes = NULL; - clip->num_boxes = 0; -} - -static inline void -_cairo_clip_unsteal_boxes (cairo_clip_t *clip, cairo_boxes_t *boxes) -{ - clip->boxes = boxes->chunks.base; - clip->num_boxes = boxes->num_boxes; -} - cairo_private cairo_clip_t * _cairo_clip_from_boxes (const cairo_boxes_t *boxes); diff --git a/src/cairo-clip.c b/src/cairo-clip.c index 6bf1f39c8..bd70c06df 100644 --- a/src/cairo-clip.c +++ b/src/cairo-clip.c @@ -40,6 +40,7 @@ */ #include "cairoint.h" +#include "cairo-clip-inline.h" #include "cairo-clip-private.h" #include "cairo-error-private.h" #include "cairo-freed-pool-private.h" diff --git a/src/cairo-composite-rectangles.c b/src/cairo-composite-rectangles.c index 8c5cd5a99..c2de02a4d 100644 --- a/src/cairo-composite-rectangles.c +++ b/src/cairo-composite-rectangles.c @@ -35,6 +35,7 @@ #include "cairoint.h" +#include "cairo-clip-inline.h" #include "cairo-error-private.h" #include "cairo-composite-rectangles-private.h" #include "cairo-pattern-private.h" diff --git a/src/cairo-default-context.c b/src/cairo-default-context.c index b58a76614..dc8c359a9 100644 --- a/src/cairo-default-context.c +++ b/src/cairo-default-context.c @@ -43,6 +43,7 @@ #include "cairo-private.h" #include "cairo-arc-private.h" #include "cairo-backend-private.h" +#include "cairo-clip-inline.h" #include "cairo-default-context-private.h" #include "cairo-error-private.h" #include "cairo-freed-pool-private.h" diff --git a/src/cairo-gstate.c b/src/cairo-gstate.c index d851f34fe..889bc1aec 100644 --- a/src/cairo-gstate.c +++ b/src/cairo-gstate.c @@ -37,6 +37,7 @@ #include "cairoint.h" +#include "cairo-clip-inline.h" #include "cairo-clip-private.h" #include "cairo-error-private.h" #include "cairo-gstate-private.h" diff --git a/src/cairo-mask-compositor.c b/src/cairo-mask-compositor.c index 7bee37244..8dbd35945 100644 --- a/src/cairo-mask-compositor.c +++ b/src/cairo-mask-compositor.c @@ -45,6 +45,7 @@ #include "cairoint.h" +#include "cairo-clip-inline.h" #include "cairo-compositor-private.h" #include "cairo-image-surface-private.h" #include "cairo-pattern-private.h" diff --git a/src/cairo-spans-compositor.c b/src/cairo-spans-compositor.c index 70fc1c295..9474b4780 100644 --- a/src/cairo-spans-compositor.c +++ b/src/cairo-spans-compositor.c @@ -42,6 +42,7 @@ #include "cairoint.h" #include "cairo-compositor-private.h" +#include "cairo-clip-inline.h" #include "cairo-clip-private.h" #include "cairo-image-surface-private.h" #include "cairo-paginated-private.h" diff --git a/src/cairo-surface-clipper.c b/src/cairo-surface-clipper.c index 0d2890c22..5309362c6 100644 --- a/src/cairo-surface-clipper.c +++ b/src/cairo-surface-clipper.c @@ -35,6 +35,7 @@ #include "cairoint.h" +#include "cairo-clip-inline.h" #include "cairo-surface-clipper-private.h" /* A collection of routines to facilitate vector surface clipping */ diff --git a/src/cairo-surface-offset.c b/src/cairo-surface-offset.c index d2cc03032..98f57f298 100644 --- a/src/cairo-surface-offset.c +++ b/src/cairo-surface-offset.c @@ -37,6 +37,7 @@ #include "cairoint.h" +#include "cairo-clip-inline.h" #include "cairo-error-private.h" #include "cairo-pattern-private.h" #include "cairo-surface-offset-private.h" diff --git a/src/cairo-surface-subsurface.c b/src/cairo-surface-subsurface.c index 071dd75be..97475f2b4 100644 --- a/src/cairo-surface-subsurface.c +++ b/src/cairo-surface-subsurface.c @@ -35,6 +35,7 @@ #include "cairoint.h" +#include "cairo-clip-inline.h" #include "cairo-error-private.h" #include "cairo-image-surface-private.h" #include "cairo-recording-surface-private.h" diff --git a/src/cairo-surface-wrapper.c b/src/cairo-surface-wrapper.c index fe9c42a44..578e8e2be 100644 --- a/src/cairo-surface-wrapper.c +++ b/src/cairo-surface-wrapper.c @@ -37,6 +37,7 @@ #include "cairoint.h" +#include "cairo-clip-inline.h" #include "cairo-error-private.h" #include "cairo-pattern-private.h" #include "cairo-surface-wrapper-private.h" diff --git a/src/cairo-surface.c b/src/cairo-surface.c index 4c77de7c8..3c31d8ca0 100644 --- a/src/cairo-surface.c +++ b/src/cairo-surface.c @@ -39,6 +39,7 @@ #include "cairoint.h" #include "cairo-array-private.h" +#include "cairo-clip-inline.h" #include "cairo-clip-private.h" #include "cairo-damage-private.h" #include "cairo-device-private.h" diff --git a/src/cairo-traps-compositor.c b/src/cairo-traps-compositor.c index f70ac1c67..5e1138034 100644 --- a/src/cairo-traps-compositor.c +++ b/src/cairo-traps-compositor.c @@ -43,6 +43,7 @@ #include "cairo-box-inline.h" #include "cairo-boxes-private.h" +#include "cairo-clip-inline.h" #include "cairo-clip-private.h" #include "cairo-composite-rectangles-private.h" #include "cairo-compositor-private.h" diff --git a/src/cairo-xcb-surface-render.c b/src/cairo-xcb-surface-render.c index f1f5fbe8d..74c6c844c 100644 --- a/src/cairo-xcb-surface-render.c +++ b/src/cairo-xcb-surface-render.c @@ -34,6 +34,7 @@ #include "cairo-xcb-private.h" #include "cairo-boxes-private.h" +#include "cairo-clip-inline.h" #include "cairo-clip-private.h" #include "cairo-composite-rectangles-private.h" #include "cairo-image-surface-private.h" diff --git a/src/cairo-xlib-core-compositor.c b/src/cairo-xlib-core-compositor.c index dfb450692..aaa71d52c 100644 --- a/src/cairo-xlib-core-compositor.c +++ b/src/cairo-xlib-core-compositor.c @@ -52,6 +52,7 @@ #include "cairo-xlib-surface-private.h" #include "cairo-boxes-private.h" +#include "cairo-clip-inline.h" #include "cairo-compositor-private.h" #include "cairo-image-surface-private.h" #include "cairo-pattern-private.h" diff --git a/src/win32/cairo-win32-gdi-compositor.c b/src/win32/cairo-win32-gdi-compositor.c index 2bdac6680..001f3b7c7 100644 --- a/src/win32/cairo-win32-gdi-compositor.c +++ b/src/win32/cairo-win32-gdi-compositor.c @@ -47,6 +47,7 @@ #include "cairo-win32-private.h" #include "cairo-boxes-private.h" +#include "cairo-clip-inline.h" #include "cairo-compositor-private.h" #include "cairo-image-surface-private.h" #include "cairo-pattern-private.h"