Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_imagepipe_brush.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2004 Boudewijn Rempt <boud@valdyas.org>
3 * SPDX-FileCopyrightText: 2005 Bart Coppens <kde@bartcoppens.be>
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 */
7#ifndef KIS_IMAGEPIPE_BRUSH_
8#define KIS_IMAGEPIPE_BRUSH_
9
10#include <QMap>
11#include <QString>
12
13#include <KoResource.h>
14#include "kis_gbr_brush.h"
15#include "kis_global.h"
16
18
36
37class BRUSH_EXPORT KisImagePipeBrush : public KisGbrBrush
38{
39
40public:
41 KisImagePipeBrush(const QString& filename);
46 KisImagePipeBrush(const QString& name, int w, int h,
49
50 ~KisImagePipeBrush() override;
51
54
56
57 KoResourceSP clone() const override;
58
59 bool loadFromDevice(QIODevice *dev, KisResourcesInterfaceSP resourcesInterface) override;
60 bool saveToDevice(QIODevice* dev) const override;
61
66 KisDabShape const&,
67 const KisPaintInformation& info,
68 double subPixelX = 0, double subPixelY = 0) const override;
69
70 void setAdjustmentMidPoint(quint8 value) override;
71 void setBrightnessAdjustment(qreal value) override;
72 void setContrastAdjustment(qreal value) override;
73 void setAutoAdjustMidPoint(bool value) override;
74
75 QString parasiteSelection(); // returns random, constant, etc
76
77 KisOptimizedBrushOutline outline(bool forcePreciseOutline = false) const override;
78
79 bool canPaintFor(const KisPaintInformation& info) override;
80
81 void makeMaskImage(bool preserveAlpha) override;
82
83
84 QString defaultFileExtension() const override;
85 void setAngle(qreal _angle) override;
86 void setScale(qreal _scale) override;
87 void setSpacing(double _spacing) override;
88
89 quint32 brushIndex() const override;
90 qint32 maskWidth(KisDabShape const&, double subPixelX, double subPixelY, const KisPaintInformation& info) const override;
91 qint32 maskHeight(KisDabShape const&, double subPixelX, double subPixelY, const KisPaintInformation& info) const override;
92
93 void notifyStrokeStarted() override;
94 void prepareForSeqNo(const KisPaintInformation& info, int seqNo) override;
95
97 KisDabShape const&,
98 const KisPaintInformation& info,
99 double subPixelX = 0, double subPixelY = 0,
100 qreal softnessFactor = DEFAULT_SOFTNESS_FACTOR, qreal lightnessStrength = DEFAULT_LIGHTNESS_STRENGTH) const override;
101
103
104 QVector<KisGbrBrushSP> brushes() const;
105
106 const KisPipeBrushParasite &parasite() const;
107
108 void setParasite(const KisPipeBrushParasite& parasite);
109 void setDevices(QVector< QVector<KisPaintDevice*> > devices, int w, int h);
110
111 void coldInitBrush() override;
112
113protected:
114 virtual void setBrushApplication(enumBrushApplication brushApplication) override;
115 virtual void setGradient(KoAbstractGradientSP gradient) override;
117
118private:
119 friend class KisImagePipeBrushTest;
120
121 KisGbrBrushSP testingGetCurrentBrush(const KisPaintInformation& info) const;
122 void testingSelectNextBrush(const KisPaintInformation& info) const;
123
124 bool initFromData(const QByteArray &data);
125
126 QString parasiteSelectionString; // incremental, random, etc.
127
128private:
129 struct Private;
130 Private * const d;
131};
132
134
135#endif // KIS_IMAGEPIPE_BRUSH_
float value(const T *src, size_t ch)
virtual void setGradient(KoAbstractGradientSP gradient)
virtual qint32 maskHeight(KisDabShape const &, qreal subPixelX, qreal subPixelY, const KisPaintInformation &info) const
virtual void setSpacing(double spacing)
virtual void setAngle(qreal _angle)
virtual void notifyStrokeStarted()
virtual void setScale(qreal _scale)
virtual void coldInitBrush()
virtual KisFixedPaintDeviceSP paintDevice(const KoColorSpace *colorSpace, KisDabShape const &, const KisPaintInformation &info, double subPixelX=0, double subPixelY=0) const
virtual void prepareForSeqNo(const KisPaintInformation &info, int seqNo)
virtual void notifyBrushIsGoingToBeClonedForStroke()
virtual KisOptimizedBrushOutline outline(bool forcePreciseOutline=false) const
virtual void generateMaskAndApplyMaskOrCreateDab(KisFixedPaintDeviceSP dst, ColoringInformation *coloringInfo, KisDabShape const &, const KisPaintInformation &info, double subPixelX, double subPixelY, qreal softnessFactor, qreal lightnessStrength) const
virtual quint32 brushIndex() const
virtual void setBrushApplication(enumBrushApplication brushApplication)
virtual qint32 maskWidth(KisDabShape const &, qreal subPixelX, qreal subPixelY, const KisPaintInformation &info) const
virtual bool canPaintFor(const KisPaintInformation &)
virtual void setAdjustmentMidPoint(quint8 value)
virtual void setContrastAdjustment(qreal value)
virtual void setBrightnessAdjustment(qreal value)
virtual void setAutoAdjustMidPoint(bool autoAdjustMidPoint)
bool saveToDevice(QIODevice *dev) const override
bool loadFromDevice(QIODevice *dev, KisResourcesInterfaceSP resourcesInterface) override
QString defaultFileExtension() const override
KoResourceSP clone() const override
virtual void makeMaskImage(bool preserveAlpha)
KisImagePipeBrush & operator=(const KisImagePipeBrush &rhs)=delete
static const qreal DEFAULT_LIGHTNESS_STRENGTH
Definition kis_brush.h:46
static const qreal DEFAULT_SOFTNESS_FACTOR
Definition kis_brush.h:45
enumBrushApplication
Definition kis_brush.h:38
QSharedPointer< KisImagePipeBrush > KisImagePipeBrushSP