Krita Source Code Documentation
Loading...
Searching...
No Matches
KisLevelsFilterConfiguration.h
Go to the documentation of this file.
1/*
2 * KDE. Krita Project.
3 *
4 * SPDX-FileCopyrightText: 2021 Deif Lou <ginoba@gmail.com>
5 *
6 * SPDX-License-Identifier: GPL-2.0-or-later
7 */
8
9#ifndef KIS_LEVELS_FILTER_CONFIGURATION_H
10#define KIS_LEVELS_FILTER_CONFIGURATION_H
11
13#include <kis_paint_device.h>
14#include <KisLevelsCurve.h>
15
17{
18public:
22
23 KisFilterConfigurationSP clone() const override;
24
25 static inline QString defaultName() { return "levels"; }
26 static constexpr qint32 defaultVersion() { return 2; }
27 static inline KisLevelsCurve defaultLevelsCurve() { return KisLevelsCurve(); }
28 static constexpr bool defaultUseLightnessMode() { return true; }
29 static constexpr bool defaultShowLogarithmicHistogram() { return false; }
30
34
35 void fromLegacyXML(const QDomElement& root) override;
36 void fromXML(const QDomElement& e) override;
37 void toXML(QDomDocument& doc, QDomElement& root) const override;
38
39 void setProperty(const QString &name, const QVariant &value) override;
40
43 void setLevelsCurves(const QVector<KisLevelsCurve> &newLevelsCurves);
44 void setLightnessLevelsCurve(const KisLevelsCurve &newLightnessLevelsCurve);
45 const QVector<QVector<quint16>>& transfers() const;
47
48 bool useLightnessMode() const;
49 bool showLogarithmicHistogram() const;
50 void setUseLightnessMode(bool newUseLightnessMode);
51 void setShowLogarithmicHistogram(bool newShowLogarithmicHistogram);
52
53 bool isCompatible(const KisPaintDeviceSP) const override;
54
55 void setDefaults();
56
57private:
60
61 int channelCount() const;
62 void setChannelCount(int newChannelCount);
63
66
67 void updateTransfers();
69};
70
71#endif
float value(const T *src, size_t ch)
This class holds the parameters for a levels adjustment. It is modeled after KisCubicCurve and has si...
void setLevelsCurves(const QVector< KisLevelsCurve > &newLevelsCurves)
const KisLevelsCurve lightnessLevelsCurve() const
QVector< QVector< quint16 > > m_transfers
KisFilterConfigurationSP clone() const override
void setProperty(const QString &name, const QVariant &value) override
void fromLegacyXML(const QDomElement &root) override
static constexpr bool defaultShowLogarithmicHistogram()
void setShowLogarithmicHistogram(bool newShowLogarithmicHistogram)
static constexpr bool defaultUseLightnessMode()
const QVector< KisLevelsCurve > levelsCurves() const
void setUseLightnessMode(bool newUseLightnessMode)
void setLightnessLevelsCurve(const KisLevelsCurve &newLightnessLevelsCurve)
const QVector< QVector< quint16 > > & transfers() const
const QVector< quint16 > & lightnessTransfer() const
bool isCompatible(const KisPaintDeviceSP) const override
void fromXML(const QDomElement &e) override
KisLevelsFilterConfiguration(int channelCount, qint32 version, KisResourcesInterfaceSP resourcesInterface)
void fromXML(const QDomElement &) override
virtual void fromLegacyXML(const QDomElement &)
KisResourcesInterfaceSP resourcesInterface