File indexing completed on 2024-05-26 04:33:10

0001 /*
0002  * This file is part of Krita
0003  *
0004  * SPDX-FileCopyrightText: Michael Thaler <michael.thaler@physik.tu-muenchen.de>
0005  *
0006  * SPDX-License-Identifier: GPL-2.0-or-later
0007  */
0008 
0009 #ifndef _KIS_RAINDROPS_FILTER_H_
0010 #define _KIS_RAINDROPS_FILTER_H_
0011 
0012 #include "filter/kis_filter.h"
0013 #include "kis_config_widget.h"
0014 #include "kis_paint_device.h"
0015 
0016 class KisRainDropsFilter : public KisFilter
0017 {
0018 public:
0019     KisRainDropsFilter();
0020 public:
0021 
0022     void processImpl(KisPaintDeviceSP device,
0023                      const QRect& applyRect,
0024                      const KisFilterConfigurationSP config,
0025                      KoUpdater* progressUpdater) const override;
0026     static inline KoID id() {
0027         return KoID("raindrops", i18n("Raindrops"));
0028     }
0029 
0030     KisFilterConfigurationSP defaultConfiguration(KisResourcesInterfaceSP resourcesInterface) const override;
0031 public:
0032     KisConfigWidget * createConfigurationWidget(QWidget* parent, const KisPaintDeviceSP dev, bool useForMasks) const override;
0033 private:
0034     bool** CreateBoolArray(uint Columns, uint Rows) const;
0035     void   FreeBoolArray(bool** lpbArray, uint Columns) const;
0036     uchar  LimitValues(int ColorValue) const;
0037 };
0038 
0039 #endif