summaryrefslogtreecommitdiff
path: root/src/cairo-paginated-surface.c
diff options
context:
space:
mode:
authorAdrian Johnson <ajohnson@redneon.com>2008-01-07 21:05:36 +1030
committerAdrian Johnson <ajohnson@redneon.com>2008-01-07 21:05:36 +1030
commite195cb551caa40f309127ac7a39e4a17653966c8 (patch)
treeebc4275581ca569743771a11dedae48fb3b419e7 /src/cairo-paginated-surface.c
parentd2a5d1ace64cb9efabcb065e7fc28667dd8f779d (diff)
Add FALLBACK mode to paginated surface
The PDF surface needs to know when the fallback images start so it can close off the content stream and create a knockout transparency group for the fallback images. Currently it does this by looking for operations with CAIRO_OPERATOR_SOURCE. PDF returns unsupported for _SOURCE during the analysis phase so _SOURCE will never appear during native operations. However this prevents the PDF surface from supporting _SOURCE operations that can be natively supported. For example a _SOURCE operation with nothing painting under it can be converted to _OVER and natively supported. A third mode, CAIRO_PAGINATED_MODE_FALLBACK, has been added. The paginated surface will set this mode before it paints finer-grained fallback images.
Diffstat (limited to 'src/cairo-paginated-surface.c')
-rw-r--r--src/cairo-paginated-surface.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/cairo-paginated-surface.c b/src/cairo-paginated-surface.c
index 068a60c1..d644d874 100644
--- a/src/cairo-paginated-surface.c
+++ b/src/cairo-paginated-surface.c
@@ -365,7 +365,9 @@ _paint_page (cairo_paginated_surface_t *surface)
cairo_box_int_t *boxes;
int num_boxes, i;
- /* Reset clip region before drawing the fall back images */
+ surface->backend->set_paginated_mode (surface->target, CAIRO_PAGINATED_MODE_FALLBACK);
+
+ /* Reset clip region before drawing the fall back images */
status = _cairo_surface_intersect_clip_path (surface->target,
NULL,
CAIRO_FILL_RULE_WINDING,