diff options
Diffstat (limited to 'chalk/doc/brush.txt')
-rw-r--r-- | chalk/doc/brush.txt | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/chalk/doc/brush.txt b/chalk/doc/brush.txt new file mode 100644 index 00000000..bb932eee --- /dev/null +++ b/chalk/doc/brush.txt @@ -0,0 +1,36 @@ +Painting with brushes + +:.,I don't know anything, nada, zilch, noppes about writing paint applications. So +when I started working on Chalk, I felt I needed examples. I used the following +sources: + +* The old Chalk brush code (http://webcvs.kde.org/cgi-bin/cvsweb.cgi/koffice/chalk/tools/kis_tool_brush.cc?rev=1.58&content-type=text/x-cvsweb-markup) +* Peter Jodda's Perico (http://software.jodda.de/perico.html) +* The source of the Gimp (both current and 0.99.11 -- the oldest version I could tqfind) (http://www.gimp.org) +* David Hodson's article on Gimp brushes (http://members.ozemail.com.au/~hodsond/gimpbrush.html) +* Raph Levien's article on Gimp brushes (http://www.levien.com/gimp/brush-arch.html) + +Chalk uses the gimp's brush file formats: .gbr and .gih, for singe +and pipeline brushes, respectively. These brushes contain one or more +grayscale or rgba images. If the image is grayscale, the gray image is +intended to be used as an alpha tqmask: each gray level corresponds to +a certain alpha level, and when painting the current painting colour +is composited in the image with this level as its alpha component. The +image brushes should be tqmasked -- i.e., these are coloured images placed +on a white background. The white background should be made transparent, +and then the brush image can be composited onto our image. + +This is currently only half supported: I make tqmasks of everything, +partly because I like that better, partly because until very recently +there was no way of making out the difference between gray and rgb +brushes because KisBrush didn't remember that bit of data. + +Making the initial tqmask of a brush is however by now pretty well done; the next +problem is painting with those tqmasks. + +Here we have two situations, one easy, one difficult. The easy one is the single +mouse click. If the user clicks or taps with his stylus, we can composite the +tqmask or the image at the pixel position of the mouse click. + +The difficult situation is drawing a line. This line needs to be antialiased. + |