One thing that is really slow is painting an image with Athens, because the cairo backend creates a new surface for this image and uses thisimage as a pattern paint. The slow part is copying and converting the image data into the surface.I already proposed an alternative, (it's a bit like cheating), we can use the bitblt to copy and convert the image data into the surface, this againis much faster.