2d.composite.uncovered.fill.destination-in

fill() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged.