Transform source pattern for _cairo_surface_fill_path() also (#4673).

Use cairo_fill_preserve() instead of cairo_save()/cairo_restore().
Add missing return values.
This commit is contained in:
Kristian Høgsberg 2005-10-10 09:36:39 +00:00
parent 7fdf45ce61
commit f39816e016
5 changed files with 22 additions and 15 deletions

View file

@ -1,3 +1,14 @@
2005-10-10 Kristian Høgsberg <krh@redhat.com>
* src/cairo-gstate.c (_cairo_gstate_fill): Transform source
pattern for _cairo_surface_fill_path() also (#4673).
* test/ps-surface.c, test/pdf-surface.c (draw): Use
cairo_fill_preserve() instead of cairo_save()/cairo_restore().
* src/cairo-pdf-surface.c (emit_surface_pattern): Add missing
return values.
2005-10-10 Billy Biggs <vektor@dumbterm.net>
* src/cairo.h (cairo_extend_t): Add documentation for the

View file

@ -1558,6 +1558,7 @@ _cairo_gstate_fill (cairo_gstate_t *gstate, cairo_path_fixed_t *path)
{
cairo_status_t status;
cairo_traps_t traps;
cairo_pattern_union_t pattern;
if (gstate->source->status)
return gstate->source->status;
@ -1565,14 +1566,18 @@ _cairo_gstate_fill (cairo_gstate_t *gstate, cairo_path_fixed_t *path)
status = _cairo_surface_set_clip (gstate->target, &gstate->clip);
if (status)
return status;
_cairo_gstate_copy_transformed_source (gstate, &pattern.base);
status = _cairo_surface_fill_path (gstate->operator,
gstate->source,
&pattern.base,
gstate->target,
path,
gstate->fill_rule,
gstate->tolerance);
_cairo_pattern_fini (&pattern.base);
if (status != CAIRO_INT_STATUS_UNSUPPORTED)
return status;

View file

@ -797,13 +797,12 @@ emit_surface_pattern (cairo_pdf_surface_t *dst,
unsigned int id, alpha;
cairo_matrix_t pm;
if (pattern->surface->backend == &cairo_pdf_surface_backend) {
return;
}
if (pattern->surface->backend == &cairo_pdf_surface_backend)
return CAIRO_STATUS_SUCCESS;
status = _cairo_surface_acquire_source_image (pattern->surface, &image, &image_extra);
if (status)
return;
return status;
_cairo_pdf_document_close_stream (document);

View file

@ -56,11 +56,7 @@ draw (cairo_t *cr, double width, double height)
/* Fill face */
cairo_arc (cr, 0.5, 0.5, 0.5 - STROKE_WIDTH, 0, 2 * M_PI);
cairo_set_source_rgb (cr, 1, 1, 0);
cairo_save (cr);
{
cairo_fill (cr);
}
cairo_restore (cr);
cairo_fill_preserve (cr);
cairo_set_source_rgb (cr, 0, 0, 0);

View file

@ -56,11 +56,7 @@ draw (cairo_t *cr, double width, double height)
/* Fill face */
cairo_arc (cr, 0.5, 0.5, 0.5 - STROKE_WIDTH, 0, 2 * M_PI);
cairo_set_source_rgb (cr, 1, 1, 0);
cairo_save (cr);
{
cairo_fill (cr);
}
cairo_restore (cr);
cairo_fill_preserve (cr);
cairo_set_source_rgb (cr, 0, 0, 0);