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