[cairo] cairo internal design ideas

Carl Worth cworth at east.isi.edu
Wed Sep 22 16:14:15 PDT 2004


On Wed, 22 Sep 2004 23:21:06 +0200, =?iso-8859-1?Q?Dirk_Sch=F6nberger?= wrote:
> Maybe I misunderstood something, but what is a tesselator needed for e.g. a
> Postscript
> paint device. All is needed for PS is a 1:1 copy of the path composing
> operators (moveto, lineto, curveto, closepath and friends)

Unfortunately, it's not nearly as simple as that.

PostScript has an imaging model (all paint is opaque) that is much less
expressive than what cairo allows (all paint may be translucent and
composited with a Porter/Duff operator). So, a faithful implementation
of a PostScript backend can not directly map cairo_stroke to PS stroke,
etc.

The current PostScript backend (eg. the ginat-image-of-doom) does give
results that are faithful to the cairo model, but the output is less
than ideal.

A more interesting approach would resort to images as little as
possible. Doing this properly is tricky, (consider opaque and
translucent objects that partially overlap --- and remember that seams
are intolerable). But it should be a fun project.

-Carl




More information about the cairo mailing list