Last Week in Krita -- Week 4 PDF Print E-mail
Written by Boud   
Monday, 01 February 2010 19:23

Last week was hugely exciting for us developers, because Lukáš, having finished the last of his exams, could get started on our action plan! Lukáš first week was very, very intensive. His poor laptop hardly managed to keep up with the production of callgrind output, so we had to distribute that task a bit. What he did was in the first place, using QTestLib's new benchmarking feature, write a bunch of performance tests for common things like composing two images, fetching and writing pixels, painting strokes. Then he ran these benchmarks under callgrind, so he could see where the hotspots were.

The good news: there are plenty of places where we can optimize so Krita will get a lot faster. The bad news: there's a lot of work to do! You can read all about Lukáš ' work in his weekly blog and in the report on our wiki. Today, Lukáš spent most of his time investigating Krita's brush rendering code. During an animated discussion with Øyvind Kolås (aka Pippin), Dmitry, Cyrille and me, we formulated an approach that might combine flexibility, performance and low memory consumption for Krita's autobrush feature. Maybe we'll see the first commits tomorrow!

Even better: Thomas Thym showed that Krita is gaining a userbase: 


Yay for budding artists everywhere!

Code

Again, lots of commits: 96. And that doesn't count the work in pigment or KOffice. The bug count is creeping up again, to 90...

Adrian Page made sure Krita's png filter also works with libpng 1.4, did a bit of make-it-compile-on-windows work, and then on Saturday settled down to unify as far as possible Krita's two canvases: the opengl and qpainter canvas. Lots of duplicated code removed, and even better: the start of work to fix Bug 148207: Pixel Pencil lines are messy.

Boudewijn helped Lukáš here and there with the benchmarking code, but =because he switched jobs, didn't do much coding, except for some token work on the mixer canvas. Cyrille promptly fixed a bug in there!

Cyrille Berger was going strong: trying to figure out how much of a perfomance hit Krita would suffer if we using a 0 - 1.0 scale for opacity instead of 0-255. Turns out that currently, that's a bit much, but there now is nice api in pigment to use opacity with the extra precision. He then added a grayscale 32 bits float/channel colorspace and set out to achieve a hugely important milestone: we can now load a multilayer .exr file, with different colorspaces for different layers, and save it in a .kra file without losing any information! Cyrille was elated enough that he decided to go and do some painting in Krita instead of implementing the .exr export right away.

Having refreshed his mind by creating a spot of art, Cyrille went on (I'm giving him two paragraphs, since his work won't fit in one) to improve our curve handling code, fix replaying of the spray brush in the recorder, add a build mode that makes it possible to both have debug messages and optimized code, fixed some bugs in the metadata handling, fixing the saving of XMP, made it possible to store non-icc color profiles in .kra files, fixed loading layers that have a different colorspace than the image, updated the collection of shiva filters and generators, and started to really hunt for memory leaks. Krita now has a built-in memory leak detector.

Edward Apap cleaned up the user interface of brush engine settings tabs and then set out to replace the convolution code with an FFTW-based approach. We've seen no code yet, except when he posted a snippet to the #krita irc channel... FFTW-based convolution should be much faster than the current approach.

Sven Langkamp fixed a crash in the sumi-e brush engine, helped Lukáš with some benchmarking code and optimized the startup of Krita a bit more.

Finally, Vera Lukman integrated her recent color palette with the color selection system of Krita, which means it really works now. This sparked an interesting discussion on the mailing list on what kinds of color selection mechanism would be useful in the palette. I am sure we will be discussing that a lot in Deventer, in three weeks!

Comments (0)
Write comment
Your Contact Details:
Gravatar enabled
Comment:
[b] [i] [u] [url] [quote] [code] [img]   
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):S
:!::?::idea::arrow:
Security
Please input the anti-spam code that you can read in the image.
Last Updated on Thursday, 11 February 2010 10:02
 

What is Krita?

Krita is a KDE program for sketching and painting, offering an end–to–end solution for creating digital painting files from scratch by masters.

Fields of painting that Krita explicitly supports are concept art, creation of comics and textures for rendering.


Modelled on existing real-world painting materials and workflows, Krita supports creative working by getting out of the way and with snappy response.

Read More...

An Unusual Opportunity

Click here to lend your support to Krita!
Click here to learn why.

Help Make Krita Even Better!

Bird flying with paintbrushEvery bit you can do to help make Krita better, helps every part of the community... to help you! Krita is free software and is therefore under continuous development. We welcome contributions, whether that is code, documentation, tutorials, or ideas and expertise from artists and users. Join us on #koffice at irc.freenode.net, or on our mailing list. Ideas are developed in our wiki. Krita can only grow through your contributions!

Powered by KDE


KDE is an international technology team that creates Free Software for desktop and portable computing. KDE software is translated into more than 60 languages and is built with ease of use and modern accessibility principles in mind. KDE4's full-featured applications run natively on Linux, BSD, Solaris, Windows and Mac OS X.

Free template 'Colorfall' by [ Anch ] Gorsk.net Studio. Please, don't remove this hidden copyleft!