summaryrefslogtreecommitdiff
path: root/test/any2ppm.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-06-11 14:06:15 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2010-06-11 14:12:23 +0100
commitf74b11415a1f7682dd50c222baa8815ef93681dc (patch)
tree561c33c736793448e3f3883ce5162a088ba15d13 /test/any2ppm.c
parent7f227ec8d3f981dbbf2ca1914bf7fd29d9cdfd05 (diff)
downloadcairo-f74b11415a1f7682dd50c222baa8815ef93681dc.tar.gz
test: Use a group to render PDF correctly using poppler.
In order to support blend modes, we need to use a clear background whilst rendering the PDF, which inspired the use of DEST_OVER to avoid having to render to an intermediate surface. However, the adjunct of using subpixel text means that we cannot simply using the alpha channel as the sole mask and so need to render to an intermediate and paint it over an opaque background.
Diffstat (limited to 'test/any2ppm.c')
-rw-r--r--test/any2ppm.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/test/any2ppm.c b/test/any2ppm.c
index 55b4c7ec7..b4c9de6fe 100644
--- a/test/any2ppm.c
+++ b/test/any2ppm.c
@@ -357,14 +357,17 @@ _poppler_render_page (const char *filename,
poppler_page_get_size (page, &width, &height);
- surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width, height);
+ surface = cairo_image_surface_create (CAIRO_FORMAT_RGB24, width, height);
cr = cairo_create (surface);
+ cairo_set_source_rgb (cr, 1., 1., 1.);
+ cairo_paint (cr);
+ cairo_push_group_with_content (cr, CAIRO_CONTENT_COLOR_ALPHA);
+
poppler_page_render (page, cr);
g_object_unref (page);
- cairo_set_operator (cr, CAIRO_OPERATOR_DEST_OVER);
- cairo_set_source_rgb (cr, 1., 1., 1.);
+ cairo_pop_group_to_source (cr);
cairo_paint (cr);
status = cairo_status (cr);