diff options
author | Adrian Johnson <ajohnson@redneon.com> | 2008-10-01 20:50:53 +0930 |
---|---|---|
committer | Adrian Johnson <ajohnson@redneon.com> | 2008-11-02 20:12:22 +1030 |
commit | d682d275b90f7326df76d2764c513c8b6d5b551b (patch) | |
tree | a4bccb6429aa3ec217377479e37d84b9a9e3fba3 /src/cairo-svg-surface.c | |
parent | ed2081d97401741db10b0244eaba7ff31ae63346 (diff) |
Add an extents argument to the high level surface backend functions
Add a "cairo_rectangle_int_t *extents" argument to to the following
backend functions:
paint
mask,
stroke
fill
show_glyphs
show_text_glyphs
This will be used to pass the extents of each operation computed by
the analysis surface to the backend. This is required for implementing
EXTEND_PAD.
Diffstat (limited to 'src/cairo-svg-surface.c')
-rw-r--r-- | src/cairo-svg-surface.c | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/src/cairo-svg-surface.c b/src/cairo-svg-surface.c index a50f13b8..039cc39c 100644 --- a/src/cairo-svg-surface.c +++ b/src/cairo-svg-surface.c @@ -1890,7 +1890,8 @@ _cairo_svg_surface_fill_stroke (void *abstract_surface, cairo_matrix_t *stroke_ctm, cairo_matrix_t *stroke_ctm_inverse, double stroke_tolerance, - cairo_antialias_t stroke_antialias) + cairo_antialias_t stroke_antialias, + cairo_rectangle_int_t *extents) { cairo_svg_surface_t *surface = abstract_surface; cairo_status_t status; @@ -1925,7 +1926,8 @@ _cairo_svg_surface_fill (void *abstract_surface, cairo_path_fixed_t *path, cairo_fill_rule_t fill_rule, double tolerance, - cairo_antialias_t antialias) + cairo_antialias_t antialias, + cairo_rectangle_int_t *extents) { cairo_svg_surface_t *surface = abstract_surface; cairo_status_t status; @@ -2013,7 +2015,8 @@ _cairo_svg_surface_emit_paint (cairo_output_stream_t *output, static cairo_int_status_t _cairo_svg_surface_paint (void *abstract_surface, cairo_operator_t op, - const cairo_pattern_t *source) + const cairo_pattern_t *source, + cairo_rectangle_int_t *extents) { cairo_status_t status; cairo_svg_surface_t *surface = abstract_surface; @@ -2065,9 +2068,10 @@ _cairo_svg_surface_paint (void *abstract_surface, static cairo_int_status_t _cairo_svg_surface_mask (void *abstract_surface, - cairo_operator_t op, - const cairo_pattern_t *source, - const cairo_pattern_t *mask) + cairo_operator_t op, + const cairo_pattern_t *source, + const cairo_pattern_t *mask, + cairo_rectangle_int_t *extents) { cairo_status_t status; cairo_svg_surface_t *surface = abstract_surface; @@ -2154,7 +2158,8 @@ _cairo_svg_surface_stroke (void *abstract_dst, cairo_matrix_t *ctm, cairo_matrix_t *ctm_inverse, double tolerance, - cairo_antialias_t antialias) + cairo_antialias_t antialias, + cairo_rectangle_int_t *extents) { cairo_svg_surface_t *surface = abstract_dst; cairo_status_t status; @@ -2189,7 +2194,8 @@ _cairo_svg_surface_show_glyphs (void *abstract_surface, cairo_glyph_t *glyphs, int num_glyphs, cairo_scaled_font_t *scaled_font, - int *remaining_glyphs) + int *remaining_glyphs, + cairo_rectangle_int_t *extents) { cairo_svg_surface_t *surface = abstract_surface; cairo_svg_document_t *document = surface->document; @@ -2261,7 +2267,7 @@ FALLBACK: } status = _cairo_svg_surface_fill (abstract_surface, op, pattern, - &path, CAIRO_FILL_RULE_WINDING, 0.0, CAIRO_ANTIALIAS_SUBPIXEL); + &path, CAIRO_FILL_RULE_WINDING, 0.0, CAIRO_ANTIALIAS_SUBPIXEL, NULL); _cairo_path_fixed_fini (&path); |