added CAIROSURFACE and helpers to render to a given Cairo surface