File indexing completed on 2024-06-16 04:12:11

0001 /*
0002  *  SPDX-FileCopyrightText: 2014 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #ifndef KIS_LS_BEVEL_EMBOSS_FILTER_H
0008 #define KIS_LS_BEVEL_EMBOSS_FILTER_H
0009 
0010 #include <QSharedPointer>
0011 
0012 #include "kis_layer_style_filter.h"
0013 #include <kritaimage_export.h>
0014 
0015 struct psd_layer_effects_bevel_emboss;
0016 
0017 
0018 class KRITAIMAGE_EXPORT KisLsBevelEmbossFilter : public KisLayerStyleFilter
0019 {
0020 public:
0021     KisLsBevelEmbossFilter();
0022 
0023     KisLayerStyleFilter* clone() const override;
0024 
0025     void processDirectly(KisPaintDeviceSP src,
0026                          KisMultipleProjection *dst,
0027                          KisLayerStyleKnockoutBlower *blower,
0028                          const QRect &applyRect,
0029                          KisPSDLayerStyleSP style,
0030                          KisLayerStyleFilterEnvironment *env) const override;
0031 
0032     QRect neededRect(const QRect & rect, KisPSDLayerStyleSP style, KisLayerStyleFilterEnvironment *env) const override;
0033     QRect changedRect(const QRect & rect, KisPSDLayerStyleSP style, KisLayerStyleFilterEnvironment *env) const override;
0034 
0035 
0036 private:
0037     KisLsBevelEmbossFilter(const KisLsBevelEmbossFilter &rhs);
0038 
0039     void applyBevelEmboss(KisPaintDeviceSP srcDevice,
0040                           KisMultipleProjection *dst,
0041                           const QRect &applyRect,
0042                           const psd_layer_effects_bevel_emboss *config, KisResourcesInterfaceSP resourcesInterface,
0043                           KisLayerStyleFilterEnvironment *env) const;
0044 };
0045 
0046 #endif