Consecutive Convolutions

Dmitry Kazakov dimula73 at
Tue Dec 22 15:05:21 CET 2009

Could you try to create transactions for both devices? Directly or using
KisPainter's method. Filters rely on oldData feature but this do not work
without a transaction created.

On Tue, Dec 22, 2009 at 4:57 PM, Ed . <schumifer at> wrote:

>  Hi,
> 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,
>   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.<>
> _______________________________________________
> kimageshop mailing list
> kimageshop at

Dmitry Kazakov
-------------- next part --------------
An HTML attachment was scrubbed...

More information about the kimageshop mailing list