implement Porter-Duff compositing ops