[cairo] Cairo and ISO C++

Bill Spitzak spitzak at gmail.com
Tue Jan 21 10:55:19 PST 2014


Jeff Muizelaar wrote:

> I've only quickly skimmed this proposal but one suggestion that 
> immediately comes to mind is to drop the EXTEND_NONE mode. I've only 
> ever seen this extend mode in cairo. It's not in CoreGraphics, Skia, or 
> Direct2D and is not very efficiently implemented on GPUs.
> 
> It's also a bit of a user trap because the intuitive way to draw an 
> image is with cairo_paint_surface() which works as long as the 
> transformation matrix is the identity. As soon as it is not, you end up 
> with fuzzy image borders. CoreGraphics, Skia and Direct2D all solve this 
> problem by having api similar to HTML Canvas's drawImage() that 
> effectively does set_extend(EXTEND_PAD); clip(imageBoundsRect()); 
> paint(image);

Yes please, this is another defect in Cairo which could be fixed by the 
C++ wrapper. Cairo produces the correct image if you use EXTEND_PAD and 
intersect the current clip with the transform of the source image's 
bounding box, I would intercept attempts to set EXTEND_NONE and do this 
instead.



More information about the cairo mailing list