diff options
Diffstat (limited to 'src/cairo-spans.c')
-rw-r--r-- | src/cairo-spans.c | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/src/cairo-spans.c b/src/cairo-spans.c index f6586506b..b8d41800e 100644 --- a/src/cairo-spans.c +++ b/src/cairo-spans.c @@ -32,87 +32,6 @@ #include "cairo-fixed-private.h" #include "cairo-types-private.h" -static cairo_scan_converter_t * -_create_scan_converter (cairo_fill_rule_t fill_rule, - cairo_antialias_t antialias, - const cairo_composite_rectangles_t *rects) -{ - if (antialias == CAIRO_ANTIALIAS_NONE) { - ASSERT_NOT_REACHED; - return NULL; - } - - return _cairo_tor_scan_converter_create (rects->bounded.x, - rects->bounded.y, - rects->bounded.x + rects->bounded.width, - rects->bounded.y + rects->bounded.height, - fill_rule); -} - -/* XXX Add me to the compositor interface. Ok, first create the compositor - * interface, and then add this with associated fallback! - */ -cairo_status_t -_cairo_surface_composite_polygon (cairo_surface_t *surface, - cairo_operator_t op, - const cairo_pattern_t *pattern, - cairo_fill_rule_t fill_rule, - cairo_antialias_t antialias, - const cairo_composite_rectangles_t *rects, - cairo_polygon_t *polygon, - cairo_region_t *clip_region) -{ - cairo_span_renderer_t *renderer; - cairo_scan_converter_t *converter; - cairo_status_t status; - cairo_clip_path_t *clip_path = rects->clip->path; - - if (rects->is_bounded) { - if (polygon->num_edges == 0) - return CAIRO_STATUS_SUCCESS; - - if (clip_path) { /* XXX */ - cairo_polygon_t clipper; - cairo_fill_rule_t clipper_fill_rule; - cairo_antialias_t clipper_antialias; - - if (_cairo_clip_get_polygon (rects->clip, &clipper, - &clipper_fill_rule, - &clipper_antialias) == CAIRO_INT_STATUS_SUCCESS) { - if (clipper_antialias != CAIRO_ANTIALIAS_NONE && - _cairo_polygon_intersect (polygon, fill_rule, - &clipper, clipper_fill_rule) == CAIRO_STATUS_SUCCESS) - { - rects->clip->path = NULL; - } - - _cairo_polygon_fini (&clipper); - } - } - } - - converter = _create_scan_converter (fill_rule, antialias, rects); - status = converter->add_polygon (converter, polygon); - if (unlikely (status)) - goto CLEANUP_CONVERTER; - - renderer = _cairo_surface_create_span_renderer (op, pattern, surface, - antialias, rects, - clip_region); - status = converter->generate (converter, renderer); - if (unlikely (status)) - goto CLEANUP_RENDERER; - - status = renderer->finish (renderer); - - CLEANUP_RENDERER: - renderer->destroy (renderer); - CLEANUP_CONVERTER: - converter->destroy (converter); - rects->clip->path = clip_path; - return status; -} - static void _cairo_nil_destroy (void *abstract) { @@ -120,31 +39,6 @@ _cairo_nil_destroy (void *abstract) } static cairo_status_t -_cairo_nil_scan_converter_add_polygon (void *abstract_converter, - const cairo_polygon_t *polygon) -{ - (void) abstract_converter; - (void) polygon; - return _cairo_scan_converter_status (abstract_converter); -} - -static cairo_status_t -_cairo_nil_scan_converter_add_edge (void *abstract_converter, - const cairo_point_t *p1, - const cairo_point_t *p2, - int top, int bottom, - int dir) -{ - (void) abstract_converter; - (void) p1; - (void) p2; - (void) top; - (void) bottom; - (void) dir; - return _cairo_scan_converter_status (abstract_converter); -} - -static cairo_status_t _cairo_nil_scan_converter_generate (void *abstract_converter, cairo_span_renderer_t *renderer) { @@ -168,8 +62,6 @@ _cairo_scan_converter_set_error (void *abstract_converter, if (error == CAIRO_STATUS_SUCCESS) ASSERT_NOT_REACHED; if (converter->status == CAIRO_STATUS_SUCCESS) { - converter->add_polygon = _cairo_nil_scan_converter_add_polygon; - converter->add_edge = _cairo_nil_scan_converter_add_edge; converter->generate = _cairo_nil_scan_converter_generate; converter->status = error; } |