[Cairo] Color transforms

Owen Taylor otaylor at redhat.com
Thu Jul 17 07:32:03 PDT 2003


On Thu, 2003-07-17 at 00:35, Keith Packard wrote:
> Around 0 o'clock on Jul 17, Trevor Woerner wrote:
> 
> > IMHO, if multi-platform is what everyone wants, it would be slightly 
> > better to have less functionality but be consistent with the API and 
> > capabilities, than to have the potential of some capabilities on some 
> > systems but not on others.
> 
> Every system can support raster images, so there's no reason to consider 
> limited functionality anywhere; we can always dump images.  That's going 
> to be necessary for PostScript in any case as it doesn't support 
> translucency.  Other systems recognize when the output cannot be generated 
> with higher level primitives and fall back to rasterization automatically, 
> I think we can manage the same in cairo.
> 
> Device-independent should mean that the API have no limitations caused by 
> the rasterization engine for a particular device, but we will still need 
> some media-specific functionality (like 'showpage').  Getting a PS driver 
> running is a high priority mostly to make sure the API works for printing, 
> not to make sure we can generate postscript (that's the easy part).

I would suggest that you should try to work the API so that the printing
API isn't glommed into the rendering API, but forms a separate layer;
that is, instead of cairo_showpage (context), have something more along
the lines of:

 print_job = cairo_print_job_new_file (filename);
 cairo_print_job_set_context (print_job, context);
 /* draw a page onto context */
 cairo_print_job_next_page (print_job);
 
Or whatever. If it's set up this way, then you don't have to worry about
having lots of methods that only apply for some output devices.

Regards,
					Owen






More information about the cairo mailing list