Krita Source Code Documentation
Loading...
Searching...
No Matches
KoFilterEffect.h
Go to the documentation of this file.
1/* This file is part of the KDE project
2 * SPDX-FileCopyrightText: 2009 Cyrille Berger <cberger@cberger.net>
3 * SPDX-FileCopyrightText: 2009 Jan Hambrecht <jaham@gmx.net>
4 *
5 * SPDX-License-Identifier: LGPL-2.1-or-later
6 */
7
8#ifndef _KO_FILTER_EFFECT_H_
9#define _KO_FILTER_EFFECT_H_
10
11class QImage;
12class QString;
13class QRectF;
14class KoXmlWriter;
17
18#include <QDomDocument>
19
20#include "kritaflake_export.h"
21#include <QList>
22
34class KRITAFLAKE_EXPORT KoFilterEffect
35{
36public:
37 KoFilterEffect(const QString &id, const QString &name);
38 virtual ~KoFilterEffect();
39
41 QString name() const;
42
44 QString id() const;
45
47 void setFilterRect(const QRectF &filterRect);
48
50 QRectF filterRect() const;
51
53 QRectF filterRectForBoundingRect(const QRectF &boundingRect) const;
54
63 void setOutput(const QString &output);
64
66 QString output() const;
67
80
82 void addInput(const QString &input);
83
85 void insertInput(int index, const QString &input);
86
88 void setInput(int index, const QString &input);
89
91 void removeInput(int index);
92
99 int requiredInputCount() const;
100
107 int maximalInputCount() const;
108
114 virtual QImage processImage(const QImage &image, const KoFilterEffectRenderContext &context) const = 0;
115
121 virtual QImage processImages(const QList<QImage> &images, const KoFilterEffectRenderContext &context) const;
122
129 virtual bool load(const QDomElement &element, const KoFilterEffectLoadingContext &context) = 0;
130
135 virtual void save(KoXmlWriter &writer) = 0;
136
137protected:
139 void setRequiredInputCount(int count);
140
142 void setMaximalInputCount(int count);
143
151 void saveCommonAttributes(KoXmlWriter &writer);
152
153private:
154 class Private;
155 Private* const d;
156};
157
158#endif // _KO_FILTER_EFFECT_H_
This class provides a loading context for filter effects.
This class provides the render context for filter effects.
virtual void save(KoXmlWriter &writer)=0
virtual QImage processImage(const QImage &image, const KoFilterEffectRenderContext &context) const =0
QRectF filterRect() const
Returns the region this filter is applied to in bounding box units.
int maximalInputCount() const
QList< QString > inputs() const
QString output() const
Returns the name of the output image.
QString id() const
Returns the unique id of the filter.
QString name() const
Returns the user visible name of the filter.
Private *const d
int requiredInputCount() const
virtual bool load(const QDomElement &element, const KoFilterEffectLoadingContext &context)=0