diff options
author | Adrian Johnson <ajohnson@redneon.com> | 2007-12-29 00:26:11 +1030 |
---|---|---|
committer | Adrian Johnson <ajohnson@redneon.com> | 2007-12-29 00:26:11 +1030 |
commit | 060f384310e887f7f431a98e847b8a36fc303a0c (patch) | |
tree | 30a86976f6ef12be97a897c84aa778541298900f /src/cairo-pdf-surface.c | |
parent | 4fa46e3caaffb54f4419887418d8d0ea39816092 (diff) |
Fix PS/PDF meta surface patterns
This was failing with more than one level of push/pop group. The
problem was that the meta surface replay in PS/PDF emit_meta_surface
was replaying all the meta surface commands insteads of only the
natively supported commands. The analysis surface has also been
changed to replay meta surface patterns back to the one analysis
surface instead of creating a separate analysis surface for each
pattern. The analysis surface now transforms bounding boxes with the
meta surface pattern matrix so that fallback regions are correctly
tracked.
Diffstat (limited to 'src/cairo-pdf-surface.c')
-rw-r--r-- | src/cairo-pdf-surface.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/cairo-pdf-surface.c b/src/cairo-pdf-surface.c index 695e6e95..fd9c45e6 100644 --- a/src/cairo-pdf-surface.c +++ b/src/cairo-pdf-surface.c @@ -1620,7 +1620,9 @@ _cairo_pdf_surface_emit_meta_surface (cairo_pdf_surface_t *surface, surface->height); } - status = _cairo_meta_surface_replay (meta_surface, &surface->base); + status = _cairo_meta_surface_replay_region (meta_surface, &surface->base, + CAIRO_META_REGION_NATIVE); + assert (status != CAIRO_INT_STATUS_UNSUPPORTED); if (status) goto CLEANUP_GROUP; |