Krita Source Code Documentation
Loading...
Searching...
No Matches
KisHalftoneFilterConfiguration.h
Go to the documentation of this file.
1/*
2 * KDE. Krita Project.
3 *
4 * SPDX-FileCopyrightText: 2020 Deif Lou <ginoba@gmail.com>
5 *
6 * SPDX-License-Identifier: GPL-2.0-or-later
7 */
8
9#ifndef KIS_HALFTONE_FILTER_CONFIGURATION_H
10#define KIS_HALFTONE_FILTER_CONFIGURATION_H
11
12#include <QHash>
13#include <QString>
14#include <QStringList>
15
17#include <KoColor.h>
20
23
25{
26public:
29
31
32 KisFilterConfigurationSP clone() const override;
33
35 QList<KoResourceLoadResult> linkedResources(KisResourcesInterfaceSP globalResourcesInterface) const override;
36 QList<KoResourceLoadResult> embeddedResources(KisResourcesInterfaceSP globalResourcesInterface) const override;
37
38 static constexpr const char *HalftoneMode_Intensity = "intensity";
39 static constexpr const char *HalftoneMode_IndependentChannels = "independent_channels";
40 static constexpr const char *HalftoneMode_Alpha = "alpha";
41
42 // default properties
43 inline static QString defaultMode() { return HalftoneMode_Intensity; }
44
45 inline static QString defaultGeneratorId()
46 {
47 static QString defaultGeneratorId;
48 if (defaultGeneratorId.isNull()) {
50 if (generatorIds.size() == 0) {
52 } else {
53 generatorIds.sort();
54 if (generatorIds.indexOf("screentone") == -1) {
55 defaultGeneratorId = generatorIds.at(0);
56 } else {
57 defaultGeneratorId = "screentone";
58 }
59 }
60 }
61 return defaultGeneratorId;
62 }
63
64 static constexpr qreal defaultHardness() { return 80.0; }
65
66 static constexpr bool defaultInvert() { return false; }
67
68 inline static const KoColor& defaultForegroundColor()
69 {
70 static const KoColor c(Qt::black, KoColorSpaceRegistry::instance()->rgb8());
71 return c;
72 }
73
74 inline static const KoColor& defaultBackgroundColor()
75 {
76 static const KoColor c(Qt::white, KoColorSpaceRegistry::instance()->rgb8());
77 return c;
78 }
79
80 static constexpr int defaultForegroundOpacity() { return 100; }
81
82 static constexpr int defaultBackgroundOpacity() { return 100; }
83
84 QString colorModelId() const;
85 QString mode() const;
86 QString generatorId(const QString &prefix) const;
87 KisFilterConfigurationSP generatorConfiguration(const QString &prefix) const;
88 qreal hardness(const QString &prefix) const;
89 bool invert(const QString &prefix) const;
90 KoColor foregroundColor(const QString &prefix) const;
91 int foregroundOpacity(const QString &prefix) const;
92 KoColor backgroundColor(const QString &prefix) const;
93 int backgroundOpacity(const QString &prefix) const;
94
95 void setColorModelId(const QString &newColorModelId);
96 void setMode(const QString &newMode);
97 void setGeneratorId(const QString &prefix, const QString &id);
98 void setGeneratorConfiguration(const QString &prefix, KisFilterConfigurationSP config);
99 void setHardness(const QString &prefix, qreal newHardness);
100 void setInvert(const QString &prefix, bool newInvert);
101 void setForegroundColor(const QString &prefix, const KoColor &newForegroundColor);
102 void setForegroundOpacity(const QString &prefix, int newOpacity);
103 void setBackgroundColor(const QString &prefix, const KoColor &newBackgroundColor);
104 void setBackgroundOpacity(const QString &prefix, int newBackgroundOpacity);
105
106 void setProperty(const QString &name, const QVariant &value) override;
107
108private:
109 mutable QHash<QString, KisFilterConfigurationSP> m_generatorConfigurationsCache;
110};
111
112#endif
float value(const T *src, size_t ch)
KisPinnedSharedPtr< KisHalftoneFilterConfiguration > KisHalftoneFilterConfigurationSP
static KisGeneratorRegistry * instance()
void setBackgroundColor(const QString &prefix, const KoColor &newBackgroundColor)
static constexpr const char * HalftoneMode_Alpha
void setGeneratorConfiguration(const QString &prefix, KisFilterConfigurationSP config)
KisHalftoneFilterConfiguration(const QString &name, qint32 version, KisResourcesInterfaceSP resourcesInterface)
void setGeneratorId(const QString &prefix, const QString &id)
static constexpr const char * HalftoneMode_IndependentChannels
static constexpr const char * HalftoneMode_Intensity
void setColorModelId(const QString &newColorModelId)
KoColor backgroundColor(const QString &prefix) const
QString generatorId(const QString &prefix) const
int backgroundOpacity(const QString &prefix) const
int foregroundOpacity(const QString &prefix) const
KisFilterConfigurationSP clone() const override
KisFilterConfigurationSP generatorConfiguration(const QString &prefix) const
QHash< QString, KisFilterConfigurationSP > m_generatorConfigurationsCache
QList< KoResourceLoadResult > embeddedResources(KisResourcesInterfaceSP globalResourcesInterface) const override
QList< KoResourceLoadResult > linkedResources(KisResourcesInterfaceSP globalResourcesInterface) const override
void setHardness(const QString &prefix, qreal newHardness)
qreal hardness(const QString &prefix) const
void setForegroundColor(const QString &prefix, const KoColor &newForegroundColor)
void setProperty(const QString &name, const QVariant &value) override
void setResourcesInterface(KisResourcesInterfaceSP resourcesInterface) override
void setBackgroundOpacity(const QString &prefix, int newBackgroundOpacity)
void setForegroundOpacity(const QString &prefix, int newOpacity)
void setInvert(const QString &prefix, bool newInvert)
KoColor foregroundColor(const QString &prefix) const
bool invert(const QString &prefix) const
QList< QString > keys() const
KisResourcesInterfaceSP resourcesInterface
static KoColorSpaceRegistry * instance()