[cairo] towards 24.8

Vladimir Vukicevic vladimir at pobox.com
Fri Jun 15 15:58:01 PDT 2007


There are a number of bugs related to the 16.16 fixed coordinate space 
that many cairo calculations happen in being too small.  I'd like to do 
the work to change this to 24.8, and to make it possible to do more 
easily change that (including optionally allowing cairo to work in 
doubles or floats, at a performance cost).  There are two large chunks 
of this work, and I'd like to tackle them separately.  Here's the 
proposed plan..

1. Get cairo using 24.8 instead of 16.16.
   a. Replace all fixed point ops with macros (where appropriate)
   b. Change all uses of the fixed fractional bits into using a 
#define'd constant
   c. Catch all hardcoded fixed-point ops and replace with 
macros/functions (multiplication in particular is done "by hand" in a 
number of places)
   d. Fix touch points with other fixed-point libraries (xlib, xcb, and 
pixman) to do the correct format translation

2. Get pixman using 24.8 instead of 16.16.
   a. This depends on getting to a pixman that's maintainable; so I 
think that this depends on the pixman work that ssp is doing
   b. Turn this into a compile time option in pixman

I'm going to focus on #1 first, since #2 is a bit nebulous.  I think 
that leaving pixman at 16.16 for the time being is a decent compromise, 
because backends that don't rely on 16.16 fixed will have a bigger 
coordinate space to play with right away.

Comments?
     - Vlad


More information about the cairo mailing list