Krita progress over the past few months has been slower than I'd have liked, for a couple of reasons: porting to Qt4 was quite hard, integrating with the rest of KOffice demanded porting all our tools (more than 20), the canvas classes needed to be rewritten and so on. Lots of groundwork with little progress to show for it. Boring work, too. And we're missing the work of some people who were really important for 1.5 and 1.6 but who are now too busy with work or university to be able to do much work. And I haven't been really fit myself for months.
But! Banish the gloom! There are some really cool and interesting developments. Not only have we got a most impressive ToDo, sometimes items even get done! I already mentioned the flake integration. But there's more...
Casper Boemann moved Krita's color model library from Krita to KOffice proper, renaming it to Pigment. Then Cyrille Berger refactored it to use C++ templates, something that has been on the ToDo for a long, long time. The result? When I casually mentioned that having a 16 bits XYZ colorspace would be nice to have, Cyrille committed one in less than an hour. It used to take us a whopping day, sometimes even two, to add a colorspace to Krita. And Pigment is not just a thin wrapper around lcms: Pigment colorspaces have all kinds of extra methods to mangle pixels, like convolutions, computing averages, adjusting contrast and brightness, compositing pixels.
Anders Lund has spent quite a bit of time porting Krita's tools to the new KOffice-wide tool system (which was based on Krita's tool architecture but got morphed out of all recognition). Still, there's a lot of tools that still need to be ported.
I have been working on multithreading and on the canvas. Recompositing the image now happens in threads, and I've ported Gwenview's excellent and fast scaling. What this means is that Krita is now as good as Photoshop at showing line art zoomed out. Here's a small part of a big grayscale tiff image I found somewhere on the web (but I have forgotten where). It's from a tutorial someone on the #koffice irc channel pointed me at.
 |
 |
| Gimp svn at 9% | Krita 1.6.2 at 8.33% |
 |
 |
| Photoshop 7, 9% | Krita trunk, 6% |
What else? Cyrille has added a dynamic brush paintop plugin -- this will be able to lots of cool things while painting. There's even a bit of gui to start defining your custom brushes, but it's not finished yet. There's progress on the OpenRaster front, code progress, but also progress of a different kind: at the Libre Graphics Meeting 2007 in Montreal, Cyrille, Oyvind Kolas and me will meet with Louis Suarez-Potts from the OASIS Adoption Technical Committee for ODF and the ODF Alliance. Exciting times -- let's break the stranglehold of .psd!
I'm working on making it possible -- even easy -- to use OpenGL shaders to write filters. I'm taking my inspiration from QShaderEdit for a large part, together with the tutorials from gpgpu.org However, in order to do that, I first had to fix Krita's OpenGL canvas (to share the OpenGL context), and for that I had to fix the KOffice-wide canvas controller, and so on. It'll be a while before I can finally start working on my beloved Chinese Brush paint plugin!
On the 1.6 front, Casper Boemann has fixed almost all remaining issues with our transform code (that rotates, shears and scales). Ben Schleimer has created a framework for plugins that use the Poisson math thingy to do cool stuff like restoring bits of an image covered by letters:
| Before: |
 |
| After: |
 |
And there's more going onbe, but that's for another blog on another day!