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);
}