On Monday 21 December 2009 20:38:40 Damien de Lemeny-Makedone wrote:
> I use GIMP to draw, and I'm very interested in contributing to the code.
> I can speak C a bit, but never actually programmed anything real in this
> lanuage and have no experience with glib...
no worries, its learnable.
> So, I gently request some orientation inside the source code. I pulled git
> gimp, compiled it, and got intimidated by the amount of source files
Core code is in app/ subfolder. In it you will find paint core, brush core,
dynamics and paint options. And a lot of stuff that are derivates of the above,
all other brush class tools.
> Besides, I have a few ideas to improve the current brush system.
> I - Separate brush tip and stroke
> IMHO, the current brush system is unintuitive.
> There are duplicated features (size), bizarrely located ones (spacing),
> missing ones (why does hardness have dynamics and no slider ?).
> Features inside a same dialog doesn't seem logically organized.
Hardness... as is is a bizarre misfeature. it needs to be implemented right.
> As an improvement, I'd like to see a brush system built around brush tips
> and brush strokes.
Brush tips yes. But strokes? There is a plan to make it more convenient to
share and use tool options+dynamics+brush tip setups as complete brushes.
> I.1 - Tip (+ feature : hardness treshold)
> This leads to a weird duplicata in tool options, but it doesn't have a
> brush preview.
This mess needs to be cleaned up but its not decided yet what is the best way.
> I.2 - Stroke (+ feature : connect jitter)
> The stroke is a set of parameters which will determine how the selected tip
> will be painted on the canvas, using a brush tool.
> It is subject to the following parameters :
> Blending :
> - opacity
> - option color gradient
> - option increment
> Behavior :
> + Spacing
> + Jitter
> |- Connect (optionnal) : Jitter scatters blobs around, but breaks the line.
> With connect, blobs will be connected by a straight line with given
> creating a noisy stroke.
> (as a non native english speaker, this seems to fit better to "jitter",
> denotes nervosity rather than randomness)
Connected jitter do not feel very useful. Can you give me a case for this?
The case for current jitter is use of brushes to create a dynamic effect like
grass. grass never grows in straight line.
> II - Stacking brushes
> Sometimes, you'd like to use several brushes on the same stroke.
> For example, drawing the empty outline of a line, or a splattered line.
> This can always be done using paths, filters and all the power of gimp, but
> not that handy, it's not brushes. Sometimes you just want to wave your hand
> it's done, or do a rapid try and fail with Ctrl-Z armed and ready to use.
> I usually want to do such things.
> So I thought that several brush strokes could be blended given a stack of
> brushes with their own presets.
This is a lot of work UI wise to support. you would need to take it up with
guiguru. It probably blends together with current plans to make tool presets
more usable and perhaps introducing a special brush tool that has slots for
stacking those presets and saving that as yet another preset, this time for
the stack brush tool. I would like to see it implemented tho.
Please join us in GimpNet irc #gimp channel if you are serious about helping
Gimp-developer mailing list