File indexing completed on 2024-06-16 04:12:11
0001 /* 0002 * SPDX-FileCopyrightText: 2015 Dmitry Kazakov <dimula73@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef __KIS_LAYER_STYLE_FILTER_ENVIRONMENT_H 0008 #define __KIS_LAYER_STYLE_FILTER_ENVIRONMENT_H 0009 0010 #include <QScopedPointer> 0011 #include <QRect> 0012 0013 #include <kritaimage_export.h> 0014 #include "kis_types.h" 0015 #include <KoPattern.h> 0016 0017 class KisPainter; 0018 class KisLayer; 0019 class QPainterPath; 0020 class QBitArray; 0021 class KisCachedPaintDevice; 0022 class KisCachedSelection; 0023 0024 0025 class KRITAIMAGE_EXPORT KisLayerStyleFilterEnvironment 0026 { 0027 public: 0028 KisLayerStyleFilterEnvironment(KisLayer *sourceLayer); 0029 ~KisLayerStyleFilterEnvironment(); 0030 0031 QRect layerBounds() const; 0032 QRect defaultBounds() const; 0033 int currentLevelOfDetail() const; 0034 0035 void setupFinalPainter(KisPainter *gc, 0036 quint8 opacity, 0037 const QBitArray &channelFlags) const; 0038 0039 KisPixelSelectionSP cachedRandomSelection(const QRect &requestedRect) const; 0040 0041 KoPatternSP cachedFlattenedPattern(KoPatternSP pattern) const; 0042 0043 KisCachedSelection* cachedSelection(); 0044 KisCachedPaintDevice* cachedPaintDevice(); 0045 0046 private: 0047 struct Private; 0048 const QScopedPointer<Private> m_d; 0049 }; 0050 0051 #endif /* __KIS_LAYER_STYLE_FILTER_ENVIRONMENT_H */