diff options
author | Andrea Canciani <ranma42@gmail.com> | 2010-12-09 22:00:15 +0100 |
---|---|---|
committer | Andrea Canciani <ranma42@gmail.com> | 2010-12-10 11:04:48 +0100 |
commit | 85a489f0f212d68c69dbe5807b379b874daef4d1 (patch) | |
tree | 9ed5ed594d67aa84afa62b28b09f679e0abcd9a9 /src | |
parent | 75f34b595aead729b6f6a7017c8790d68dfa0326 (diff) |
polygon: Merge _cairo_polygon_init and _cairo_polygon_limit
_cairo_polygon_limit() had to be called immediately after
_cairo_polygon_init() (or never at all).
Merging the two calls is a simple way to enforce this rule.
Diffstat (limited to 'src')
-rw-r--r-- | src/cairo-bentley-ottmann.c | 3 | ||||
-rw-r--r-- | src/cairo-clip.c | 3 | ||||
-rw-r--r-- | src/cairo-gl-surface.c | 6 | ||||
-rw-r--r-- | src/cairo-image-surface.c | 6 | ||||
-rw-r--r-- | src/cairo-path-fill.c | 16 | ||||
-rw-r--r-- | src/cairo-path-stroke.c | 4 | ||||
-rw-r--r-- | src/cairo-polygon.c | 17 | ||||
-rw-r--r-- | src/cairo-surface-fallback.c | 6 | ||||
-rw-r--r-- | src/cairo-xcb-surface-render.c | 6 | ||||
-rw-r--r-- | src/cairoint.h | 9 | ||||
-rw-r--r-- | src/drm/cairo-drm-i915-surface.c | 6 | ||||
-rw-r--r-- | src/drm/cairo-drm-i965-surface.c | 6 |
12 files changed, 30 insertions, 58 deletions
diff --git a/src/cairo-bentley-ottmann.c b/src/cairo-bentley-ottmann.c index b3819f2f..d7b017ab 100644 --- a/src/cairo-bentley-ottmann.c +++ b/src/cairo-bentley-ottmann.c @@ -1799,8 +1799,7 @@ _cairo_bentley_ottmann_tessellate_traps (cairo_traps_t *traps, dump_traps (traps, "bo-traps-in.txt"); #endif - _cairo_polygon_init (&polygon); - _cairo_polygon_limit (&polygon, traps->limits, traps->num_limits); + _cairo_polygon_init (&polygon, traps->limits, traps->num_limits); for (i = 0; i < traps->num_traps; i++) { status = _cairo_polygon_add_line (&polygon, diff --git a/src/cairo-clip.c b/src/cairo-clip.c index 5b5d66ee..6bf679be 100644 --- a/src/cairo-clip.c +++ b/src/cairo-clip.c @@ -786,8 +786,7 @@ _rectilinear_clip_to_boxes (const cairo_path_fixed_t *path, _cairo_traps_init (&traps); _cairo_traps_limit (&traps, *boxes, *num_boxes); - _cairo_polygon_init (&polygon); - _cairo_polygon_limit (&polygon, *boxes, *num_boxes); + _cairo_polygon_init (&polygon, *boxes, *num_boxes); status = _cairo_path_fixed_fill_rectilinear_to_traps (path, fill_rule, diff --git a/src/cairo-gl-surface.c b/src/cairo-gl-surface.c index 278e6429..9b4b2acf 100644 --- a/src/cairo-gl-surface.c +++ b/src/cairo-gl-surface.c @@ -1504,8 +1504,7 @@ _cairo_gl_surface_stroke (void *abstract_surface, return status; } - _cairo_polygon_init (&polygon); - _cairo_polygon_limit (&polygon, clip_boxes, num_boxes); + _cairo_polygon_init (&polygon, clip_boxes, num_boxes); status = _cairo_path_fixed_stroke_to_polygon (path, style, @@ -1581,8 +1580,7 @@ _cairo_gl_surface_fill (void *abstract_surface, return status; } - _cairo_polygon_init (&polygon); - _cairo_polygon_limit (&polygon, clip_boxes, num_boxes); + _cairo_polygon_init (&polygon, clip_boxes, num_boxes); status = _cairo_path_fixed_fill_to_polygon (path, tolerance, &polygon); if (likely (status == CAIRO_STATUS_SUCCESS)) { diff --git a/src/cairo-image-surface.c b/src/cairo-image-surface.c index 1ebadee6..64d4e2de 100644 --- a/src/cairo-image-surface.c +++ b/src/cairo-image-surface.c @@ -3681,8 +3681,7 @@ _cairo_image_surface_stroke (void *abstract_surface, if (status == CAIRO_INT_STATUS_UNSUPPORTED) { cairo_polygon_t polygon; - _cairo_polygon_init (&polygon); - _cairo_polygon_limit (&polygon, clip_boxes, num_boxes); + _cairo_polygon_init (&polygon, clip_boxes, num_boxes); status = _cairo_path_fixed_stroke_to_polygon (path, style, @@ -3780,8 +3779,7 @@ _cairo_image_surface_fill (void *abstract_surface, assert (! _cairo_path_fixed_fill_is_empty (path)); - _cairo_polygon_init (&polygon); - _cairo_polygon_limit (&polygon, clip_boxes, num_boxes); + _cairo_polygon_init (&polygon, clip_boxes, num_boxes); status = _cairo_path_fixed_fill_to_polygon (path, tolerance, &polygon); if (likely (status == CAIRO_STATUS_SUCCESS)) { diff --git a/src/cairo-path-fill.c b/src/cairo-path-fill.c index 3a8e58a6..6074a523 100644 --- a/src/cairo-path-fill.c +++ b/src/cairo-path-fill.c @@ -132,9 +132,7 @@ _cairo_path_fixed_fill_to_traps (const cairo_path_fixed_t *path, if (_cairo_path_fixed_fill_is_empty (path)) return CAIRO_STATUS_SUCCESS; - _cairo_polygon_init (&polygon); - if (traps->num_limits) - _cairo_polygon_limit (&polygon, traps->limits, traps->num_limits); + _cairo_polygon_init (&polygon, traps->limits, traps->num_limits); status = _cairo_path_fixed_fill_to_polygon (path, tolerance, @@ -182,10 +180,11 @@ _cairo_path_fixed_fill_rectilinear_tessellate_to_region (const cairo_path_fixed_ } /* path is not rectangular, try extracting clipped rectilinear edges */ - _cairo_polygon_init (&polygon); if (extents != NULL) { _cairo_box_from_rectangle (&box, extents); - _cairo_polygon_limit (&polygon, &box, 1); + _cairo_polygon_init (&polygon, &box, 1); + } else { + _cairo_polygon_init (&polygon, NULL, 0); } /* tolerance will be ignored as the path is rectilinear */ @@ -390,11 +389,8 @@ _cairo_path_fixed_fill_rectilinear_tessellate_to_boxes (const cairo_path_fixed_t cairo_polygon_t polygon; cairo_status_t status; - _cairo_polygon_init (&polygon); - if (boxes->num_limits) { - _cairo_polygon_limit (&polygon, boxes->limits, boxes->num_limits); - boxes->num_limits = 0; - } + _cairo_polygon_init (&polygon, boxes->limits, boxes->num_limits); + boxes->num_limits = 0; /* tolerance will be ignored as the path is rectilinear */ status = _cairo_path_fixed_fill_to_polygon (path, 0., &polygon); diff --git a/src/cairo-path-stroke.c b/src/cairo-path-stroke.c index 2b5e23ab..d5ced0e5 100644 --- a/src/cairo-path-stroke.c +++ b/src/cairo-path-stroke.c @@ -1407,9 +1407,7 @@ _cairo_path_fixed_stroke_to_traps (const cairo_path_fixed_t *path, return status; } - _cairo_polygon_init (&polygon); - if (traps->num_limits) - _cairo_polygon_limit (&polygon, traps->limits, traps->num_limits); + _cairo_polygon_init (&polygon, traps->limits, traps->num_limits); status = _cairo_path_fixed_stroke_to_polygon (path, stroke_style, diff --git a/src/cairo-polygon.c b/src/cairo-polygon.c index e5c4f96c..c3f3631d 100644 --- a/src/cairo-polygon.c +++ b/src/cairo-polygon.c @@ -1,3 +1,4 @@ +/* -*- Mode: c; c-basic-offset: 4; indent-tabs-mode: t; tab-width: 8; -*- */ /* cairo - a vector graphics library with display and print output * * Copyright © 2002 University of Southern California @@ -39,8 +40,12 @@ #include "cairo-error-private.h" void -_cairo_polygon_init (cairo_polygon_t *polygon) +_cairo_polygon_init (cairo_polygon_t *polygon, + const cairo_box_t *limits, + int num_limits) { + int n; + VG (VALGRIND_MAKE_MEM_UNDEFINED (polygon, sizeof (cairo_polygon_t))); polygon->status = CAIRO_STATUS_SUCCESS; @@ -50,18 +55,8 @@ _cairo_polygon_init (cairo_polygon_t *polygon) polygon->edges = polygon->edges_embedded; polygon->edges_size = ARRAY_LENGTH (polygon->edges_embedded); - polygon->num_limits = 0; - polygon->extents.p1.x = polygon->extents.p1.y = INT32_MAX; polygon->extents.p2.x = polygon->extents.p2.y = INT32_MIN; -} - -void -_cairo_polygon_limit (cairo_polygon_t *polygon, - const cairo_box_t *limits, - int num_limits) -{ - int n; polygon->limits = limits; polygon->num_limits = num_limits; diff --git a/src/cairo-surface-fallback.c b/src/cairo-surface-fallback.c index 61944c04..ca7a0518 100644 --- a/src/cairo-surface-fallback.c +++ b/src/cairo-surface-fallback.c @@ -1067,8 +1067,7 @@ _cairo_surface_fallback_stroke (cairo_surface_t *surface, if (unlikely (status)) return status; - _cairo_polygon_init (&polygon); - _cairo_polygon_limit (&polygon, clip_boxes, num_boxes); + _cairo_polygon_init (&polygon, clip_boxes, num_boxes); _cairo_traps_init (&traps); _cairo_traps_limit (&traps, clip_boxes, num_boxes); @@ -1163,8 +1162,7 @@ _cairo_surface_fallback_fill (cairo_surface_t *surface, _cairo_traps_init (&traps); _cairo_traps_limit (&traps, clip_boxes, num_boxes); - _cairo_polygon_init (&polygon); - _cairo_polygon_limit (&polygon, clip_boxes, num_boxes); + _cairo_polygon_init (&polygon, clip_boxes, num_boxes); if (_cairo_path_fixed_fill_is_empty (path)) goto DO_TRAPS; diff --git a/src/cairo-xcb-surface-render.c b/src/cairo-xcb-surface-render.c index 1ec63ca6..f7128181 100644 --- a/src/cairo-xcb-surface-render.c +++ b/src/cairo-xcb-surface-render.c @@ -3382,8 +3382,7 @@ _cairo_xcb_surface_render_stroke_as_polygon (cairo_xcb_surface_t *dst, cairo_polygon_t polygon; cairo_status_t status; - _cairo_polygon_init (&polygon); - _cairo_polygon_limit (&polygon, clip_boxes, num_boxes); + _cairo_polygon_init (&polygon, clip_boxes, num_boxes); status = _cairo_path_fixed_stroke_to_polygon (path, stroke_style, @@ -3582,8 +3581,7 @@ _cairo_xcb_surface_render_fill_as_polygon (cairo_xcb_surface_t *dst, cairo_polygon_t polygon; cairo_status_t status; - _cairo_polygon_init (&polygon); - _cairo_polygon_limit (&polygon, clip_boxes, num_boxes); + _cairo_polygon_init (&polygon, clip_boxes, num_boxes); status = _cairo_path_fixed_fill_to_polygon (path, tolerance, &polygon); if (likely (status == CAIRO_STATUS_SUCCESS)) { diff --git a/src/cairoint.h b/src/cairoint.h index 91254280..0ee4477e 100644 --- a/src/cairoint.h +++ b/src/cairoint.h @@ -1982,12 +1982,9 @@ _cairo_pen_find_active_ccw_vertex_index (const cairo_pen_t *pen, /* cairo-polygon.c */ cairo_private void -_cairo_polygon_init (cairo_polygon_t *polygon); - -cairo_private void -_cairo_polygon_limit (cairo_polygon_t *polygon, - const cairo_box_t *boxes, - int num_boxes); +_cairo_polygon_init (cairo_polygon_t *polygon, + const cairo_box_t *boxes, + int num_boxes); cairo_private void _cairo_polygon_fini (cairo_polygon_t *polygon); diff --git a/src/drm/cairo-drm-i915-surface.c b/src/drm/cairo-drm-i915-surface.c index 373e6749..247d8ad5 100644 --- a/src/drm/cairo-drm-i915-surface.c +++ b/src/drm/cairo-drm-i915-surface.c @@ -1938,8 +1938,7 @@ i915_surface_fill_with_alpha (void *abstract_dst, goto CLEANUP_BOXES; } - _cairo_polygon_init (&info.polygon); - _cairo_polygon_limit (&info.polygon, clip_boxes, num_boxes); + _cairo_polygon_init (&info.polygon, clip_boxes, num_boxes); status = _cairo_path_fixed_fill_to_polygon (path, tolerance, &info.polygon); if (unlikely (status)) @@ -2280,8 +2279,7 @@ i915_surface_stroke (void *abstract_dst, goto CLEANUP_BOXES; } - _cairo_polygon_init (&info.polygon); - _cairo_polygon_limit (&info.polygon, clip_boxes, num_boxes); + _cairo_polygon_init (&info.polygon, clip_boxes, num_boxes); status = _cairo_path_fixed_stroke_to_polygon (path, stroke_style, diff --git a/src/drm/cairo-drm-i965-surface.c b/src/drm/cairo-drm-i965-surface.c index c3618a32..39478362 100644 --- a/src/drm/cairo-drm-i965-surface.c +++ b/src/drm/cairo-drm-i965-surface.c @@ -1343,8 +1343,7 @@ i965_surface_stroke (void *abstract_dst, goto CLEANUP_BOXES; } - _cairo_polygon_init (&info.polygon); - _cairo_polygon_limit (&info.polygon, clip_boxes, num_boxes); + _cairo_polygon_init (&info.polygon, clip_boxes, num_boxes); status = _cairo_path_fixed_stroke_to_polygon (path, stroke_style, @@ -1451,8 +1450,7 @@ i965_surface_fill (void *abstract_dst, goto CLEANUP_BOXES; } - _cairo_polygon_init (&info.polygon); - _cairo_polygon_limit (&info.polygon, clip_boxes, num_boxes); + _cairo_polygon_init (&info.polygon, clip_boxes, num_boxes); status = _cairo_path_fixed_fill_to_polygon (path, tolerance, &info.polygon); if (unlikely (status)) |