Krita Source Code Documentation
Loading...
Searching...
No Matches
KisHalftoneFilter.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_H
10#define KIS_HALFTONE_FILTER_H
11
12#include <QObject>
13#include <QVector>
14
15#include <filter/kis_filter.h>
18
20
21class KisConfigWidget;
22
23class KritaHalftone : public QObject
24{
25 Q_OBJECT
26public:
27 KritaHalftone(QObject *parent, const QVariantList &);
28 ~KritaHalftone() override;
29};
30
32{
33public:
35
36 static inline KoID id() {
37 return KoID("halftone", i18n("Halftone"));
38 }
39
40 void processImpl(KisPaintDeviceSP device,
41 const QRect& applyRect,
42 const KisFilterConfigurationSP config,
43 KoUpdater *progressUpdater) const override;
44
47 KisConfigWidget *createConfigurationWidget(QWidget *parent, const KisPaintDeviceSP dev, bool useForMasks) const override;
48
49private:
53
54 static QVector<quint8> makeHardnessLut(qreal hardness);
55 static QVector<quint8> makeNoiseWeightLut(qreal hardness);
56
57 static inline quint8 mapU8ToRange(quint8 value, quint8 new_min, quint8 new_max) {
58 Q_UNUSED(new_min);
59 Q_UNUSED(new_max);
60 return value;
61 }
62 template <typename T>
63 static inline T mapU8ToRange(quint8 value, T new_min, T new_max) {
64 return value * (new_max - new_min) / 255 + new_min;
65 }
66
68 const QString & prefix,
69 const QRect &applyRect,
71 KoUpdater *progressUpdater) const;
72
73 bool checkUpdaterInterruptedAndSetPercent(KoUpdater *progressUpdater, int percent) const;
74
76 const QRect& applyRect,
78 KoUpdater *progressUpdater) const;
79 template <typename ChannelType>
81 KisPaintDeviceSP generatorDevice,
82 const QRect &applyRect,
84 const QString & prefix,
85 KoChannelInfo * channelInfo) const;
87 const QRect& applyRect,
89 KoUpdater *progressUpdater) const;
91 const QRect& applyRect,
93 KoUpdater *progressUpdater) const;
94 void processMask(KisPaintDeviceSP device,
95 const QRect& applyRect,
97 KoUpdater *progressUpdater) const;
98
99};
100
101#endif
float value(const T *src, size_t ch)
void processIntensity(KisPaintDeviceSP device, const QRect &applyRect, const KisHalftoneFilterConfiguration *config, KoUpdater *progressUpdater) const
KisCachedPaintDevice m_grayDevicesCache
static QVector< quint8 > makeHardnessLut(qreal hardness)
void processImpl(KisPaintDeviceSP device, const QRect &applyRect, const KisFilterConfigurationSP config, KoUpdater *progressUpdater) const override
KisFilterConfigurationSP factoryConfiguration(KisResourcesInterfaceSP resourcesInterface) const override
void processChannels(KisPaintDeviceSP device, const QRect &applyRect, const KisHalftoneFilterConfiguration *config, KoUpdater *progressUpdater) const
KisCachedPaintDevice m_genericDevicesCache
KisCachedSelection m_selectionsCache
void processMask(KisPaintDeviceSP device, const QRect &applyRect, const KisHalftoneFilterConfiguration *config, KoUpdater *progressUpdater) const
void processChannel(KisPaintDeviceSP device, KisPaintDeviceSP generatorDevice, const QRect &applyRect, const KisHalftoneFilterConfiguration *config, const QString &prefix, KoChannelInfo *channelInfo) const
void processAlpha(KisPaintDeviceSP device, const QRect &applyRect, const KisHalftoneFilterConfiguration *config, KoUpdater *progressUpdater) const
KisConfigWidget * createConfigurationWidget(QWidget *parent, const KisPaintDeviceSP dev, bool useForMasks) const override
static T mapU8ToRange(quint8 value, T new_min, T new_max)
static quint8 mapU8ToRange(quint8 value, quint8 new_min, quint8 new_max)
KisPaintDeviceSP makeGeneratorPaintDevice(KisPaintDeviceSP prototype, const QString &prefix, const QRect &applyRect, const KisHalftoneFilterConfiguration *config, KoUpdater *progressUpdater) const
bool checkUpdaterInterruptedAndSetPercent(KoUpdater *progressUpdater, int percent) const
static QVector< quint8 > makeNoiseWeightLut(qreal hardness)
KisFilterConfigurationSP defaultConfiguration(KisResourcesInterfaceSP resourcesInterface) const override
Definition KoID.h:30
~KritaHalftone() override
KritaHalftone(QObject *parent, const QVariantList &)