schumifer at hotmail.com
Tue Dec 22 14:57:55 CET 2009
I am performing two consecutive convolution operations, one after each other in a filter (the Gaussian Blur filter in the review board). Of course, I need a temporary buffer to do this. Below is what I'm doing.
KisPaintDeviceSP interm = new KisPaintDevice(*src);
KisConvolutionPainter horizPainter(interm, dstInfo.selection());
horizPainter.applyMatrix(kernelHoriz, src, srcTopLeft, srcTopLeft, size, BORDER_REPEAT);
KisConvolutionPainter verticalPainter(dst, dstInfo.selection());
verticalPainter.applyMatrix(kernelVertical, interm, srcTopLeft, dstTopLeft, size, BORDER_REPEAT);
The output I'm getting when I apply the rasterizing filter, is the result of the second convolution only. However, if I apply the filter as a filter layer, I get the combined result of both convolutions.
As boud suggested on IRC, I switched Krita to the old tile engine, and the results are correct in both cases. Therefore, the indication is that this is a problem with the new tile engine. Could anyone investigate further?
Windows Live: Friends get your Flickr, Yelp, and Digg updates when they e-mail you.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the kimageshop