diff options
Diffstat (limited to 'src/cairo-tee-surface.c')
-rw-r--r-- | src/cairo-tee-surface.c | 65 |
1 files changed, 14 insertions, 51 deletions
diff --git a/src/cairo-tee-surface.c b/src/cairo-tee-surface.c index 7a94c9bca..1d075a29c 100644 --- a/src/cairo-tee-surface.c +++ b/src/cairo-tee-surface.c @@ -44,7 +44,6 @@ #include "cairo-default-context-private.h" #include "cairo-error-private.h" -#include "cairo-tee-surface-private.h" #include "cairo-recording-surface-inline.h" #include "cairo-surface-wrapper-private.h" #include "cairo-array-private.h" @@ -220,12 +219,12 @@ _cairo_tee_surface_paint (void *abstract_surface, num_slaves = _cairo_array_num_elements (&surface->slaves); slaves = _cairo_array_index (&surface->slaves, 0); for (n = 0; n < num_slaves; n++) { - status = _cairo_surface_wrapper_paint (&slaves[n], op, source, clip); + status = _cairo_surface_wrapper_paint (&slaves[n], op, source, 0, clip); if (unlikely (status)) return status; } - return _cairo_surface_wrapper_paint (&surface->master, op, source, clip); + return _cairo_surface_wrapper_paint (&surface->master, op, source, 0, clip); } static cairo_int_status_t @@ -244,13 +243,17 @@ _cairo_tee_surface_mask (void *abstract_surface, slaves = _cairo_array_index (&surface->slaves, 0); for (n = 0; n < num_slaves; n++) { status = _cairo_surface_wrapper_mask (&slaves[n], - op, source, mask, clip); + op, source, 0, + mask, 0, + clip); if (unlikely (status)) return status; } return _cairo_surface_wrapper_mask (&surface->master, - op, source, mask, clip); + op, source, 0, + mask, 0, + clip); } static cairo_int_status_t @@ -274,7 +277,7 @@ _cairo_tee_surface_stroke (void *abstract_surface, slaves = _cairo_array_index (&surface->slaves, 0); for (n = 0; n < num_slaves; n++) { status = _cairo_surface_wrapper_stroke (&slaves[n], - op, source, + op, source, 0, path, style, ctm, ctm_inverse, tolerance, antialias, @@ -284,7 +287,7 @@ _cairo_tee_surface_stroke (void *abstract_surface, } return _cairo_surface_wrapper_stroke (&surface->master, - op, source, + op, source, 0, path, style, ctm, ctm_inverse, tolerance, antialias, @@ -310,7 +313,7 @@ _cairo_tee_surface_fill (void *abstract_surface, slaves = _cairo_array_index (&surface->slaves, 0); for (n = 0; n < num_slaves; n++) { status = _cairo_surface_wrapper_fill (&slaves[n], - op, source, + op, source, 0, path, fill_rule, tolerance, antialias, clip); @@ -319,7 +322,7 @@ _cairo_tee_surface_fill (void *abstract_surface, } return _cairo_surface_wrapper_fill (&surface->master, - op, source, + op, source, 0, path, fill_rule, tolerance, antialias, clip); @@ -361,7 +364,7 @@ _cairo_tee_surface_show_text_glyphs (void *abstract_surface, for (n = 0; n < num_slaves; n++) { memcpy (glyphs_copy, glyphs, sizeof (cairo_glyph_t) * num_glyphs); status = _cairo_surface_wrapper_show_text_glyphs (&slaves[n], op, - source, + source, 0, utf8, utf8_len, glyphs_copy, num_glyphs, clusters, num_clusters, @@ -374,7 +377,7 @@ _cairo_tee_surface_show_text_glyphs (void *abstract_surface, memcpy (glyphs_copy, glyphs, sizeof (cairo_glyph_t) * num_glyphs); status = _cairo_surface_wrapper_show_text_glyphs (&surface->master, op, - source, + source, 0, utf8, utf8_len, glyphs_copy, num_glyphs, clusters, num_clusters, @@ -561,43 +564,3 @@ cairo_tee_surface_index (cairo_surface_t *abstract_surface, return slave->target; } } - -cairo_surface_t * -_cairo_tee_surface_find_match (void *abstract_surface, - const cairo_surface_backend_t *backend, - cairo_content_t content) -{ - cairo_tee_surface_t *surface = abstract_surface; - cairo_surface_wrapper_t *slaves; - int num_slaves, n; - - /* exact match first */ - if (surface->master.target->backend == backend && - surface->master.target->content == content) - { - return surface->master.target; - } - - num_slaves = _cairo_array_num_elements (&surface->slaves); - slaves = _cairo_array_index (&surface->slaves, 0); - for (n = 0; n < num_slaves; n++) { - if (slaves[n].target->backend == backend && - slaves[n].target->content == content) - { - return slaves[n].target; - } - } - - /* matching backend? */ - if (surface->master.target->backend == backend) - return surface->master.target; - - num_slaves = _cairo_array_num_elements (&surface->slaves); - slaves = _cairo_array_index (&surface->slaves, 0); - for (n = 0; n < num_slaves; n++) { - if (slaves[n].target->backend == backend) - return slaves[n].target; - } - - return NULL; -} |