Finally, MyPaint development has gone stable again.

After rewriting the surface code (tiled memory, 16bit precision, alpha channel) and changing the build system (automake to SCons) and getting rid of GObject C code (the new C++ extensions are a lot cleaner, STL-free, designed to be swig’able and don’t depend on GTK any more), everything is finally working again. The code is somewhat cleaner now, and there is even a self-contained brush library (LGPL) that translates tablet events into brush dab events.

So, we have layers now. You might be disappointed that there is not much GUI for them, but they are usable and stable. You can save layered paintings in the upcoming OpenRaster file format. Some of the other GUI improvements were a direct result of having layers: the eraser mode (something I’m quite happy with) and the possibility to change the background (color or pattern).

Other improvements include a new color wheel popup contributed by Clement Skau. I must admit that it works not quite as well as I would have expected (in terms of color picking speed), but it’s still an improvement over bringing up the GTK color dialog in many situations. You can invoke it by pressing the V-key twice.

The drawback is that things are somewhat slower now. Except for undo, which is lightning fast but limited to 20 steps. Things are in particular slow when you have zoomed, rotated or mirrored the viewport.

The reason is that the backend being used for transformations, Cairo, does not seem to offer a working speed/quality tradeoff. Still, Cairo is great for what it was designed for, and transformations are easy and fun to work with. Another (smaller) reason for the slowdown is the increased Python overhead. All tablet events are now manipulated and passed around a lot more before they finally make it into the C++ module where things happen faster. This is mainly an issue for the low-end PCs (<1GHz). And the final reason for the slowdown is simply that many default brushes use tighter spacing now, making the strokes much smoother.

All in all, I’d say the improvements clearly dominate.

Downloads and Sources