[cairo] API request: obtain the trapezoids that are
jost2345 at yahoo.de
Fri Aug 27 08:32:33 PDT 2004
On Thu, 2004-08-26 at 09:56, Turner, David wrote:
> > > tesselation, which is essentially a device-specific operation.
> > In what way is that a device-specific operation?
> Some backends accept coordinates with finite precision
Ah, now I understand what you mean with device-specific. The tesselator
is not device-specific because there's only one. But it indeed
calculates integers(!), so to compensate the loss of precision it must
use some tricks which require knowledge about pixel positions.
> One solution to the problem is to use an algorithm like the one
> described here: http://cm.bell-labs.com/cm/cs/doc/93/2-27.ps.gz
Thanks for the pointer. I will read it, if I have some time.
> If you really want to support "correct" path scaling within RENDER,
> you need to move the tesselation code within the XServer,
Not sure about this one. But if we want to support fast point- and
length-animations in the future, we must change XRender to accept
additional information. At the moment only a translation animation is
Does anyone know how MS solves this?
> > > the function uses the ctm to _immediately_ transform the coordinate
> > Yes. Otherwise one could not decide what to send to the backend.
> You could decide to apply it when the path_fill or path_stroke operations
> are called.
That's how it's implemented. The state (color, line width, ctm, ...) is
applied during tesselation, not earlier. That means that you cannot
have a path where a sub-path has a different line-width, color or
matrix. If you allow different line-widths for the sub-paths you will
have some problems calculating the bounding-box for the path, for
More information about the cairo