File indexing completed on 2025-01-26 04:05:50

0001 /*
0002  *  SPDX-FileCopyrightText: 2009 Boudewijn Rempt <boud@valdyas.org>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 /**
0008   @mainpage Brush Engine API
0009 
0010 All brush engines in Krita are plugins. The classes in this directory define
0011 the way brush engines are to be implemented. Brush engines are also known as paintops.
0012 
0013 KisPaintInformation         Information about the painting stroke
0014 KisPaintOp                  Base class for brush engines: paints dots, lines and beziers. A new
0015                             paintop is created for every stroke.
0016 KisPaintOpFactory           Creates a paintop and a paintop widget
0017 KisPaintOpPreset            A KoResource that defines a set of parameters for a paintop. A KisPaintopPreset
0018                             contains a KisPaintopSettings widget.
0019 KisPaintOpRegistry          Contains the list of all brush engine plugins
0020 KisPaintOpSettings          A KisPropertiesConfiguration subclass that stores the settings for a paintop
0021 KisPaintOpConfigWidget    A KisConfigWidget that knows how to display and edit the KisPaintopSettings
0022 
0023 These classes are used in the Krita core to handle painting: a further set
0024 of utility classes for brush engine implementers is available in
0025 krita/plugins/paintops/libpaintop.
0026 
0027 
0028 The flow of action is as follows:
0029 
0030 <ul>
0031 
0032 <li>The resource system loads all paintop presets
0033 
0034 <li>The user selects a particular resource in the gui
0035 
0036 <li>The system displays the appropriate widget in the gui and fills it
0037 with the KisPaintopSettings::KisPropertiesConfiguration that defines
0038 the resource. The user can edit the settings, but they are not
0039 automatically saved
0040 
0041 <li>On mousedown, the paintop factory creates a paintop with a clone
0042 of the specified settings (for now, we also need to pass the widget to
0043 the settings class, for historical reasons)
0044 
0045 <li>When painting, KisPaintInformation is passed to the paintop
0046 
0047 <li>The paintop paints the lines
0048 
0049 <li>On mouse-up, the paintop is destroyed
0050 
0051 </ul>
0052 */
0053 
0054 #ifndef BRUSHENGINE
0055 #define BRUSHENGINE
0056 // Let's keep kRaZy happy
0057 #endif
0058