[cairo] adding canvas/javascript backend

Behdad Esfahbod behdad at behdad.org
Mon Jan 7 13:03:50 PST 2008


On Mon, 2008-01-07 at 14:31 -0500, Vladimir Vukicevic wrote:
> 
> If you take a look at the patch in bug
> https://bugzilla.mozilla.org/show_bug.cgi?id=391604 
>   part of it implements a "cairo-null-surface.c", which is basically  
> the minimum bits necessary to implement a full backend.  It doesn't  
> actually do anything, but you can then fill in the blanks :)  (Is  
> there interest in me checking that into cairo proper?

I like the idea.  Can be made a measurement surface instead.  We need to
be able to set all the per-backend info on it to be useful.  That means
adding the following API:

  cairo_surface_set_font_options()
  cairo_surface_[gs]et_tolerance()

and any new ones in the future.  For that reason, may make sense to have
a function to copy all per-surface properties that affect rendering
(including extents) from one surface to another.  This will be useful
when we expose meta-surface too.

This doesn't solve the measurement needed before creating the surface
though.  With this, the new practice would be even uglier:

  1) Create a 0x0 PDF surface
  2) Create measurement surface and copy surface properties from the PDF
surface.  Measure
  3) Create PDF surface of the right size using extents returned by
measurement surface.


-- 
behdad
http://behdad.org/

"Those who would give up Essential Liberty to purchase a little
 Temporary Safety, deserve neither Liberty nor Safety."
        -- Benjamin Franklin, 1759



More information about the cairo mailing list