[cairo] Pixman coordinates

M Joonas Pihlaja jpihlaja at cc.helsinki.fi
Thu Jul 1 22:02:20 PDT 2010


On Fri, 2 Jul 2010, [UTF-8] Krzysztof Kosi?ski wrote:

> What do you mean by "tiled rendering"? I already split the rendering
> into tiles, but it's still not possible to render paths that are
> larger than 32767 pixels at the given zoom level, even if the target
> surface has a size that is way below the limit.

I don't see why not.  Use tiles of size 1024 x 1024 or whatever 
suitable size and clip your paths to a bounding box that's slightly 
larger than the tile size so you only ever send paths to cairo which 
are close to your tile.  Chuck out any paths outside your tile while 
you're at it so cairo doesn't even have to look at them.  
Incidentally, it's best to use tiles which overlap slightly to avoid 
rendering artifacts from the geometry clipping.

> It is possible to overcome this limitation outside Cairo for paths and
> linear gradients, but it's not possible for radial gradients.

I haven't given much thought to gradients at all to be honest.  
Surface patterns with extreme transformation matrices are likely 
troublesome too.

Joonas


More information about the cairo mailing list