brushes and brush engines

C. Boemann cbr at boemann.dk
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
Casper

----- Original Message ----- 
From: "Boudewijn Rempt" <boud at valdyas.org>
To: <kimageshop at kde.org>
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 kde.org
> https://mail.kde.org/mailman/listinfo/kimageshop
> 



More information about the kimageshop mailing list