• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • krita API Reference
  • KDE Home
  • Contact Us
 

plugins/paintops/libpaintop

  • sources
  • kfour-appscomplete
  • krita
  • plugins
  • paintops
  • libpaintop
kis_brush_based_paintop.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: 2008 Boudewijn Rempt <[email protected]>
3  *
4  * SPDX-License-Identifier: GPL-2.0-or-later
5  */
6 #ifndef KIS_BRUSH_BASED_PAINTOP_H
7 #define KIS_BRUSH_BASED_PAINTOP_H
8 
9 #include "kritapaintop_export.h"
10 #include <brushengine/kis_paintop.h>
11 #include "kis_dab_cache.h"
12 #include "kis_brush.h"
13 #include "kis_texture_option.h"
14 #include "kis_precision_option.h"
15 #include "kis_airbrush_option_widget.h"
16 #include "kis_pressure_mirror_option.h"
17 #include <kis_threaded_text_rendering_workaround.h>
18 
19 
20 class KisPropertiesConfiguration;
21 class KisPressureSpacingOption;
22 class KisPressureRateOption;
23 class KisDabCache;
24 class KisResourcesInterface;
25 
27 class TextBrushInitializationWorkaround
28 {
29 public:
30  TextBrushInitializationWorkaround();
31  ~TextBrushInitializationWorkaround();
32  static TextBrushInitializationWorkaround* instance();
33 
34  void preinitialize(KisPaintOpSettingsSP settings);
35 
36  KisBrushSP tryGetBrush(const KisPropertiesConfigurationSP settings);
37 
38 
39 private:
40  KisBrushSP m_brush;
41  KisPropertiesConfigurationSP m_settings;
42 };
43 
44 
50 class PAINTOP_EXPORT KisBrushBasedPaintOp : public KisPaintOp
51 {
52 
53 public:
54 
55  KisBrushBasedPaintOp(const KisPaintOpSettingsSP settings, KisPainter* painter);
56  ~KisBrushBasedPaintOp() override;
57 
58  bool checkSizeTooSmall(qreal scale);
59 
60  KisSpacingInformation effectiveSpacing(qreal scale) const;
61  KisSpacingInformation effectiveSpacing(qreal scale, qreal rotation, const KisPaintInformation &pi) const;
62  KisSpacingInformation effectiveSpacing(qreal scale, qreal rotation, const KisPressureSpacingOption &spacingOption, const KisPaintInformation &pi) const;
63  KisSpacingInformation effectiveSpacing(qreal scale,
64  qreal rotation,
65  const KisAirbrushOptionProperties *airbrushOption,
66  const KisPressureSpacingOption *spacingOption,
67  const KisPaintInformation &pi) const;
68 
70  bool canPaint() const override;
71 
72 #ifdef HAVE_THREADED_TEXT_RENDERING_WORKAROUND
73  typedef int needs_preinitialization;
74  static void preinitializeOpStatically(KisPaintOpSettingsSP settings);
75 #endif /* HAVE_THREADED_TEXT_RENDERING_WORKAROUND */
76 
77  static QList<KoResourceSP> prepareLinkedResources(const KisPaintOpSettingsSP settings, KisResourcesInterfaceSP resourcesInterface);
78  static QList<KoResourceSP> prepareEmbeddedResources(const KisPaintOpSettingsSP settings, KisResourcesInterfaceSP resourcesInterface);
79 
80 private:
81  KisSpacingInformation effectiveSpacing(qreal dabWidth, qreal dabHeight, qreal extraScale, bool isotropicSpacing, qreal rotation, bool axesFlipped) const;
82 
83 protected: // XXX: make private!
84  KisDabCache *m_dabCache;
85  KisBrushSP m_brush;
86 
87 private:
88  KisTextureProperties m_textureProperties;
89 
90 protected:
91  KisPressureMirrorOption m_mirrorOption;
92  KisPrecisionOption m_precisionOption;
93 };
94 
95 #endif
KisPressureSpacingOption
The pressure spacing option defines a curve that is used to calculate the effect of pressure on the s...
Definition: kis_pressure_spacing_option.h:18
KisPaintOp
KisDabCache
The KisDabCache class provides caching for dabs into the brush paintop.
Definition: kis_dab_cache.h:43
KisAirbrushOptionProperties
Definition: kis_airbrush_option_widget.h:54
TextBrushInitializationWorkaround::tryGetBrush
KisBrushSP tryGetBrush(const KisPropertiesConfigurationSP settings)
KisBrushBasedPaintOp::m_precisionOption
KisPrecisionOption m_precisionOption
Definition: kis_brush_based_paintop.h:92
TextBrushInitializationWorkaround::instance
static TextBrushInitializationWorkaround * instance()
kis_precision_option.h
KisTextureProperties
Definition: kis_texture_option.h:55
TextBrushInitializationWorkaround::preinitialize
void preinitialize(KisPaintOpSettingsSP settings)
kis_airbrush_option_widget.h
KisPressureMirrorOption
If the sensor value is higher then 0.5, then the related mirror option is true, false otherwise.
Definition: kis_pressure_mirror_option.h:38
QSharedPointer< KisBrush >
kis_dab_cache.h
QList
TextBrushInitializationWorkaround::TextBrushInitializationWorkaround
TextBrushInitializationWorkaround()
KisPaintOpPluginUtils::effectiveSpacing
KisSpacingInformation effectiveSpacing(qreal dabWidth, qreal dabHeight, bool isotropicSpacing, qreal rotation, bool axesFlipped, qreal spacingVal, bool autoSpacingActive, qreal autoSpacingCoeff, qreal lodScale, const KisAirbrushOptionProperties *airbrushOption, const KisPressureSpacingOption *spacingOption, const KisPaintInformation &pi)
Similar to KisPaintOpUtils::effectiveSpacing, but some of the required parameters are obtained from t...
Definition: kis_paintop_plugin_utils.h:40
KisBrushBasedPaintOp::m_mirrorOption
KisPressureMirrorOption m_mirrorOption
Definition: kis_brush_based_paintop.h:91
KisBrushBasedPaintOp::m_dabCache
KisDabCache * m_dabCache
Definition: kis_brush_based_paintop.h:84
KisPressureRateOption
Definition: kis_pressure_rate_option.h:12
KisPrecisionOption
Definition: kis_precision_option.h:21
kis_texture_option.h
KisBrushBasedPaintOp::m_brush
KisBrushSP m_brush
Definition: kis_brush_based_paintop.h:85
TextBrushInitializationWorkaround
Internal.
Definition: kis_brush_based_paintop.h:27
detail::prepareLinkedResources
QList< KoResourceSP > prepareLinkedResources(const KisPaintOpSettingsSP settings, KisResourcesInterfaceSP resourcesInterface, std::enable_if_t< has_prepare_linked_resources< T >::value > *=0)
Definition: kis_simple_paintop_factory.h:52
KisBrushBasedPaintOp
This is a base class for paintops that use a KisBrush or derived brush to paint with.
Definition: kis_brush_based_paintop.h:50
detail::prepareEmbeddedResources
QList< KoResourceSP > prepareEmbeddedResources(const KisPaintOpSettingsSP settings, KisResourcesInterfaceSP resourcesInterface, std::enable_if_t< has_prepare_embedded_resources< T >::value > *=0)
Definition: kis_simple_paintop_factory.h:78
kis_pressure_mirror_option.h
TextBrushInitializationWorkaround::~TextBrushInitializationWorkaround
~TextBrushInitializationWorkaround()
This file is part of the KDE documentation.
Documentation copyright © 1996-2021 The KDE developers.
Generated on Sat Apr 10 2021 23:38:28 by doxygen 1.8.16 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

plugins/paintops/libpaintop

Skip menu "plugins/paintops/libpaintop"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

krita API Reference

Skip menu "krita API Reference"
  • libs
  •   KritaBasicFlakes
  •   brush
  •   KritaUndo2
  •   KritaFlake
  •   image
  •   KritaPlugin
  •   Krita
  •   KritaPigment
  •   KritaResources
  •   KritaStore
  •   ui
  •   KritaWidgets
  •   KritaWidgetUtils
  • plugins
  •   Assitants
  •   Extensions
  •   Filters
  •   Generators
  •   Formats
  •           src
  •   PaintOps
  •     libpaintop

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal