summaryrefslogtreecommitdiff
path: root/src/cairo-pdf-surface.c
diff options
context:
space:
mode:
authorAdrian Johnson <ajohnson@redneon.com>2007-12-29 00:26:11 +1030
committerAdrian Johnson <ajohnson@redneon.com>2007-12-29 00:26:11 +1030
commit060f384310e887f7f431a98e847b8a36fc303a0c (patch)
tree30a86976f6ef12be97a897c84aa778541298900f /src/cairo-pdf-surface.c
parent4fa46e3caaffb54f4419887418d8d0ea39816092 (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.c4
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;