summaryrefslogtreecommitdiff
path: root/src/cairo-spans.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cairo-spans.c')
-rw-r--r--src/cairo-spans.c108
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;
}