[cairo] The right approach to projective transformations

M Joonas Pihlaja jpihlaja at cc.helsinki.fi
Mon Aug 30 14:47:20 PDT 2010


On Mon, 30 Aug 2010, Behdad Esfahbod wrote:

> I think if we are doing this projective thing, we should finally switch to an
> opaque transformation struct.  This allows for the transformation to be
> intelligently caching.  Cache the inverse, cache the determinant, cache
> whether it's an integer translation only, etc.

I think we can do this without making the existing transform API 
obsolete.  Factor the complete mapping into two parts: a 2d affine map 
followed by a more powerful projective map, and the existing transform 
calls only work on the 2d affine part.  Existing client rendering 
routines can then pretend they're drawing onto a normal plane as 
before, even if that plane is twisted about later by a projective 
part.

Joonas


More information about the cairo mailing list