How to begin ?

Boudewijn Rempt boud at
Fri Aug 6 20:58:29 CEST 2004

On Friday 06 August 2004 20:38, Mr YouP wrote:
> Is there a topo somewhere for the "new C++ hacker in Krita" ?

Yes, indeed: This is a bit out-dated, 
but frankly, any documentation for any application that's still being 
developed will be outdated. You should also read some of the discussion in 
this mailing list since last October, particularly the "hacking Krita" 
> When I test, I see some point that I could enjoy to code or debug, I list
> them :
> - freehand select

I'm working on this: this is also not an easy subject. Or rather, in my 
current design it is, but it isn't done yet.

> - [free] transform (scale,rotate, etc.)

There is already some free transform code is kis_paint_device. This code has 
the disadvantage of being rather simple. Bart Coppens has some ideas on 
improving this. If you want to work on this subject, and like to start with 
something manageable, you could do worse than:

* design a really good dialog box for free-form transform with Qt Designer. 
(You could use ui/dialogs/wdgmatrix.ui as a starting point). Then you need to 
finish ui/kis_dlg_transform, and call that from kis_view. Here, you need to 
take the data from the dialog, make it into a QMatrix class, which you can 
feed to KisPaintDevice::transform.

If you're into real hard math, however, you might prefer to contact Bart about 
really cool anti-aliased transforms. If you're into really real hard math, 
you could do a bicubic interpolating zoom.

> - layer mask

There is currently no support at all for masks in Krita, so this could be a 
good start. I'm personally not sure about the difference between masks and 
selections -- but that's just me. Keep in mind that I want selections to work 
a bit different from selection in Gimp and Photoshop, in that I want, besides 
the usual rectangle, circle and select-by-color, also a mode where I can 
'paint' selections.

> - levels

Another interesting thing. I'm working (I need to focus: if you look back 
about four weeks in the list archives you will find a list of things I was 
working on before going on holidays) on a histogram widget, which could be 
used in a levels dialog, I guess. For the rest, you need an extended 
kgradientselect (IIRC) widget with three sliders, instead of one. It's a nice 
challenge to do a custom widget like that.

I'd do the widget first, with some test scaffolding, and actually hook it up 
to Krita only later. There's still some work done on the best method of 
accessing image data. Keep in mind that Krita will have only 8 bits per 
channel for the first release, but that we will move to a variable bit-depth 
for the release after that.

> - split view

Doesn't that work already?

> Since, it's the first C++ project, I want to work on, so those features may
> be to ambitious for beginning (I don't know in fact ;))

Well, there's the old story, told in the Cryptonomicon, about the prince who 
did manage to do the impossible because he didn't know it was impossible. So 
I won't tell you you're being a bit ambitious...

Doing a levels widget could be a whole lot of fun: masks may be a bit much, 
and for transform you need to have a bit of solid math, or at least, more 
than I have. Selections are on my plate at the moment.

Boudewijn Rempt |
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url :

More information about the kimageshop mailing list