The week started with some fixes in Dyna tool I already wrote about in the previous blog entry. Then I started to work on bug with smudge. And I still did not fix the issue completely. I started to investigate the smudge. I did not write that brush engine, so it was new code for me. I already did some bug fixing there previously. But the code has been changed in the meantime by Pentalis, our Google Summer Of Code 2010 student who by the way did great testing for smudge. I had to start to understand the code again. I did some small cosmetic changes in the code first.
Then I started to track down the bug. Smudge currently gives some blocky effect we need to fix. I started to code small unit tests to test various code places. I tested KisPainter and that one seems to be ok as other composite operations work correctly. Then I started to test the composite operation, which Cyrille wrote recently for the smudge and I discovered the problem in it. It does not work as it supposed to and instead of copying according the mask, it is doing strange things by copying rectangular area of pixels. You can see it on images created by tests TestKoCompositeOps and KisAutobrushTest.
When preparing the unit test, I discovered segmentation fault when converting part of the KisFixedPaintDevice to QImage. Fixed.Finally I commited the test I prepared. Now I’m going to try to fix the composite copy operation. Patience is the key to fix this bug. That’s all for the week 38.
Krita is becoming more robust and stable. Krita community is working in full swing fixing various bugs. I suggest you to go and compile trunk and play with it. If you find some problem, bug, crash or slow performance, please report it to us.