Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_brush_based_paintop.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2008 Boudewijn Rempt <boud@valdyas.org>
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"
11#include "kis_dab_cache.h"
12#include "kis_brush.h"
13#include "kis_texture_option.h"
16#include <KisMirrorOption.h>
17
19class KisDabCache;
23
41
42
48class PAINTOP_EXPORT KisBrushBasedPaintOp : public KisPaintOp
49{
50
51public:
52
53 KisBrushBasedPaintOp(const KisPaintOpSettingsSP settings, KisPainter* painter, KisBrushTextureFlags textureFlags = None);
54 ~KisBrushBasedPaintOp() override;
55
56 bool checkSizeTooSmall(qreal scale);
57
58 KisSpacingInformation effectiveSpacing(qreal scale) const;
59 KisSpacingInformation effectiveSpacing(qreal scale, qreal rotation, const KisPaintInformation &pi) const;
60 KisSpacingInformation effectiveSpacing(qreal scale, qreal rotation, const KisSpacingOption &spacingOption, const KisPaintInformation &pi) const;
61 KisSpacingInformation effectiveSpacing(qreal scale, qreal rotation,
62 const KisAirbrushOptionData *airbrushOption,
63 const KisSpacingOption *spacingOption,
64 const KisPaintInformation &pi) const;
65
67 bool canPaint() const override;
68
69#ifdef HAVE_THREADED_TEXT_RENDERING_WORKAROUND
70 typedef int needs_preinitialization;
71 static void preinitializeOpStatically(KisPaintOpSettingsSP settings);
72#endif /* HAVE_THREADED_TEXT_RENDERING_WORKAROUND */
73
74 static QList<KoResourceLoadResult> prepareLinkedResources(const KisPaintOpSettingsSP settings, KisResourcesInterfaceSP resourcesInterface);
75 static QList<KoResourceLoadResult> prepareEmbeddedResources(const KisPaintOpSettingsSP settings, KisResourcesInterfaceSP resourcesInterface);
76
77private:
78 KisSpacingInformation effectiveSpacing(qreal dabWidth, qreal dabHeight, qreal extraScale, bool isotropicSpacing, qreal rotation, bool axesFlipped) const;
79
80protected: // XXX: make private!
83
84private:
86
87protected:
90};
91
92#endif
KisPrecisionOption m_precisionOption
The KisDabCache class provides caching for dabs into the brush paintop.
a provider-like interface class for accessing resource sources in Krita.
static TextBrushInitializationWorkaround * instance()
KisPropertiesConfigurationSP m_settings
void preinitialize(KisPaintOpSettingsSP settings)
KisBrushSP tryGetBrush(const KisPropertiesConfigurationSP settings)
virtual bool canPaint() const
Definition kis_paintop.h:94