Ah I forgot the painterly paintop example: KisBidiOp::paintAt(info) { stamp = currManipulator->createStamp(stampObject,colorSource,info); ... alterate stamp using colors on the canvas and viceversa: do the bidi! bitBlt(stamp to canvasDevice); }