[cairo] Paint image in overlay mode  Thomas Dybdahl Ahle thomas
at ahle.dk Thu Nov 16 13:22:13 PST 2006  Hi, I'm trying to paint
an image in gimp "overlay" mode. I've found the algorithm for
overlay:  * Perform an RGB[A] overlay operation between the
pixel sources * ctx->A and ctx->B, using the generalized
algorithm: * D =  A * (B + (2 * B) * (255 - A))  But I don't
know where to go from that. Is there some kind of filter feature
in cairo, that runs a function on all pixels?  I think I need to
create an offscreen image, and update that one each time the
user changes the gtk theme (not very often)  Right now, I paint
the image using this code:  cr = widget.window.cairo_create()
surface = cairo.ImageSurface.create_from_png(imgpath)
cr.rectangle (event.area.x, event.area.y, event.area.width,
cr.set_source_surface(surface, 0, 0) pattern = cr.get_source()
Yes it is python code, but I guess the way it works is the same.
Can I somehow create an offscreen surface, that I can paint in
the backgroundcolor and append