File indexing completed on 2024-06-16 04:16:49
0001 /* 0002 * KDE. Krita Project. 0003 * 0004 * SPDX-FileCopyrightText: 2020 Deif Lou <ginoba@gmail.com> 0005 * 0006 * SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #ifndef KISSCREENTONEGENERATOR_H 0010 #define KISSCREENTONEGENERATOR_H 0011 0012 #include <QObject> 0013 #include "generator/kis_generator.h" 0014 0015 #include "KisScreentoneGeneratorConfiguration.h" 0016 0017 class KisConfigWidget; 0018 0019 class KisScreentoneGenerator : public KisGenerator 0020 { 0021 public: 0022 KisScreentoneGenerator(); 0023 0024 using KisGenerator::generate; 0025 0026 virtual void generate(KisProcessingInformation dst, 0027 const QSize& size, 0028 const KisFilterConfigurationSP config, 0029 KoUpdater* progressUpdater) const override; 0030 0031 void generate(KisProcessingInformation dst, 0032 const QSize& size, 0033 const KisScreentoneGeneratorConfigurationSP config, 0034 KoUpdater* progressUpdater) const; 0035 0036 template <class Sampler> 0037 void generate(KisProcessingInformation dst, 0038 const QSize &size, 0039 const KisScreentoneGeneratorConfigurationSP config, 0040 KoUpdater *progressUpdater, 0041 const Sampler &sampler) const; 0042 0043 template <class Sampler, class PostprocessingFunction> 0044 void generate(KisProcessingInformation dst, 0045 const QSize &size, 0046 const KisScreentoneGeneratorConfigurationSP config, 0047 KoUpdater *progressUpdater, 0048 const Sampler &sampler, 0049 const PostprocessingFunction &postprocessingFunction) const; 0050 0051 static inline KoID id() { 0052 return KoID(KisScreentoneGeneratorConfiguration::defaultName(), i18n("Screentone")); 0053 } 0054 0055 KisFilterConfigurationSP factoryConfiguration(KisResourcesInterfaceSP resourcesInterface) const override; 0056 KisFilterConfigurationSP defaultConfiguration(KisResourcesInterfaceSP resourcesInterface) const override; 0057 KisConfigWidget * createConfigurationWidget(QWidget* parent, const KisPaintDeviceSP dev, bool useForMasks) const override; 0058 0059 private: 0060 bool checkUpdaterInterruptedAndSetPercent(KoUpdater *progressUpdater, int percent) const; 0061 }; 0062 0063 #endif