Description
In version 1.6.12, method drawImage extends the imge using CAIRO_EXTEND REFLECT:
if (needsExtraSurface) {
...
cairo_pattern_set_extend(cairo_get_source(ctxTemp), CAIRO_EXTEND_REFLECT);
cairo_paint_with_alpha(ctxTemp, 1);
surface = surfTemp;
}
Finally you perform the drawing using the default cairo_pattern_set_extend
cairo_pattern_set_extend(cairo_get_source(ctx), CAIRO_EXTEND_NONE);
This "NONE" is doing nothing, because extend ALLWAYS uses the surfTemp version that contains a CAIRO_EXTEND_REFLECT and final result is a REFLECT extend.
This changes de default drawImage behaviour that is CAIRO_EXTEND_NONE (similar to Firefox/Chrome/...).
Actually, I solve this problem cleaning the reflected areas with extra code... problem is when the canvas where I paint the image contains useful contents this extra content is overpainted with the reflect.