brushes and brush engines

C. Boemann cbr at
Tue Mar 18 21:00:08 CET 2008

from a quick look i think i sounds like a good plan

I suggest KisStamp and KisTipEngine

best regards

----- Original Message ----- 
From: "Boudewijn Rempt" <boud at>
To: <kimageshop at>
Sent: Tuesday, March 18, 2008 2:03 PM
Subject: brushes and brush engines

> Ok... This started because I wanted to clean up the tablet settings
> for the brush/smudge paintop a biti and started coding an extensible
> paintop settings dropdown to replace the current size/opacity/darken
> toolbar. Then we discussed confusing naming on irc and I suddenly hit
> by a flash of lightning.
> Current situation:
> * KisBrush and friends: determine the "tip", "stamp", "footprint" or
>  "dab" for some paintops. There is always one active KisBrush, even
>  though the paintop may not use it at all. Brushes are selected from
>  a tabbed drop-down from a toolbar.
> * KisPaintop: these are the actual brush engines. Krita can have many
>  different brush engines. Some use brushes, others are procedural.
>  Paintops can have settings that can be saved and loaded, kind of
>  presets, but that are currently not visualized in the gui. Paintops are
>  selected from a combobox and the settings are visualized in a toolbar.
> Proposal:
> * Rename KisBrush to KisStamp, KisTip or KisBrushTip. All derived classes
>  follow suit.
> * Rename KisPaintop to KisBrushEngine. All derived classes follow suit.
> * Extend KisBrushEngineSettings (former KisPaintopSettings) with the name
>  of the associated paintop and parameters like the KisBrushTip instance.
> * Remove the current brush button from the toolbar
> * Replace it with a toolbar showing five active "presets" -- a preset is a
>  KisBrushopSettings instance.
> * For applicable KisBrushEngines, the settings include a particular
>  KisBrushTip. KisBrushTip is no longer an independent canvas resource.
> * Add a dropdown that can be used to manage presets for a KisBrushEngine
> * Include a nice selection of default presets.
> * Instead of an active paintop, use an active preset. Add a secondary
>  and tertiary active preset that can be selected using ctrl+freehand and
>  shift-freehand (or something like that) Which preset from the
>  selection-of-five is primary, secondary and tertiary can be determined
>  by click+modifier on the toolbar.
> * The presets can be saved and will be loaded on startup again
> * additionally, the preset selection buttons will allow on-the-fly
>  changing of the current preset through a drop-down button that shows the
>  same page as the preset manager/designer
> Advantages:
> * our code becomes less confusing: I'm getting tired of having to explain
>  the different between KisBrush and KisPaintop.
> * the ui becomes less confusing when using paintops that don't use brushes
> * it becomes easier to quickly switch between paintops while working.
> Difficulties:
> * a unique graphical representation of a preset for the toolbox:
>  perhaps brush engine icon + a small stroke? That would make the present 
> buttons
>  fairly wide.  And I think it's essential to show more than one brush
>  preset at one time in the toolbar.
> * We want to have only one collection of brush tips shared by all
>  brush engines that use brush tips. Besides, the autobrush brush tip is 
> used outside
>  the brush engines, too.
> * We'll look more like Photoshop than like Corel Painter after this
> change.
> Implementation:
> I'll have to make some changes in the canvas resource provider,
> the control box and add gui classes to implement the preset
> designer/manager. I've got already some code for that.
> By the way:
> It looks like the "hang" when using darken and the tablet is caused by
> the darken color transform somehow being really, really slow
> Boudewijn
> _______________________________________________
> kimageshop mailing list
> kimageshop at

More information about the kimageshop mailing list