PS/PDF API Change Proposal: (Re: [cairo] Semantics of transparent objects)

Alexander Larsson alexl at
Wed Jan 18 11:31:53 PST 2006

On Wed, 2006-01-18 at 11:12 -0800, Keith Packard wrote:
> On Wed, 2006-01-18 at 09:37 -0800, Carl Worth wrote:
> > I'm wondering if we can't just use cairo_t for these, and specify that
> > the time to set them is before any drawing operation on any given
> > page. That is, just after cairo_create or cairo_show_page, and before
> > any of cairo_stroke, cairo_fill, cairo_paint, cairo_mask,
> > cairo_show_text/glyphs on that page.
> Seems like these are more likely associated with the surface and not the
> drawing state.
> I see something like:
> surface = cairo_ps_surface_create ();
> while (more pages)
> {
> 	set page options (surface);
> 	draw_surface (surface);
> 	cr = cairo_create (surface);
> 	cairo_show_page (cr);
> 	cairo_destroy (cr);
> }
> In this way, draw_surface is independent of the target, and only this
> outer loop "knows" about printing at all.

Yes, this looks right to me. It also matches the idea I have of the gtk+
print model in a recent mail[1] to gtk-devel-list, where you have the
print job code actually do the while loop, taking care of collation and
duplication, calling first a "get page settings" callback and then a
"render page" callback, passing a page nr and a cairo_t object.

[1] Not in archive yet, but i think it will be at:

 Alexander Larsson                                            Red Hat, Inc 
                   alexl at    alla at 
He's a Nobel prize-winning pirate cowboy on the run. She's a cold-hearted 
Buddhist snake charmer from a secret island of warrior women. They fight 

More information about the cairo mailing list