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