Warning, file /graphics/krita/plugins/paintops/libpaintop/KisTextureOptionData.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 * SPDX-FileCopyrightText: 2022 Dmitry Kazakov <dimula73@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 #ifndef KISTEXTUREOPTIONDATA_H 0007 #define KISTEXTUREOPTIONDATA_H 0008 0009 #include <boost/operators.hpp> 0010 #include <kritapaintop_export.h> 0011 0012 #include "KisEmbeddedTextureData.h" 0013 0014 class KisPaintopLodLimitations; 0015 0016 enum KisBrushTextureFlag 0017 { 0018 None = 0x0, 0019 SupportsLightnessMode = 0x1, 0020 SupportsGradientMode = 0x2, 0021 }; 0022 Q_DECLARE_FLAGS(KisBrushTextureFlags, KisBrushTextureFlag) 0023 Q_DECLARE_OPERATORS_FOR_FLAGS(KisBrushTextureFlags) 0024 0025 0026 0027 struct PAINTOP_EXPORT KisTextureOptionData : boost::equality_comparable<KisTextureOptionData> 0028 { 0029 enum TexturingMode { 0030 MULTIPLY, 0031 SUBTRACT, 0032 LIGHTNESS, 0033 GRADIENT, 0034 DARKEN, 0035 OVERLAY, 0036 COLOR_DODGE, 0037 COLOR_BURN, 0038 LINEAR_DODGE, 0039 LINEAR_BURN, 0040 HARD_MIX_PHOTOSHOP, 0041 HARD_MIX_SOFTER_PHOTOSHOP, 0042 HEIGHT, 0043 LINEAR_HEIGHT, 0044 HEIGHT_PHOTOSHOP, 0045 LINEAR_HEIGHT_PHOTOSHOP 0046 }; 0047 0048 inline friend bool operator==(const KisTextureOptionData &lhs, const KisTextureOptionData &rhs) { 0049 return lhs.isEnabled == rhs.isEnabled && 0050 lhs.textureData == rhs.textureData && 0051 qFuzzyCompare(lhs.scale, rhs.scale) && 0052 qFuzzyCompare(lhs.brightness, rhs.brightness) && 0053 qFuzzyCompare(lhs.contrast, rhs.contrast) && 0054 qFuzzyCompare(lhs.neutralPoint, rhs.neutralPoint) && 0055 lhs.offsetX == rhs.offsetX && 0056 lhs.offsetY == rhs.offsetY && 0057 lhs.maximumOffsetX == rhs.maximumOffsetX && 0058 lhs.maximumOffsetY == rhs.maximumOffsetY && 0059 lhs.isRandomOffsetX == rhs.isRandomOffsetX && 0060 lhs.isRandomOffsetY == rhs.isRandomOffsetY && 0061 lhs.texturingMode == rhs.texturingMode && 0062 lhs.cutOffPolicy == rhs.cutOffPolicy && 0063 lhs.cutOffLeft == rhs.cutOffLeft && 0064 lhs.cutOffRight == rhs.cutOffRight && 0065 lhs.invert == rhs.invert; 0066 } 0067 0068 KisEmbeddedTextureData textureData; 0069 0070 bool isEnabled {false}; 0071 qreal scale {1.0}; 0072 qreal brightness {0.0}; 0073 qreal contrast {1.0}; 0074 qreal neutralPoint {0.5}; 0075 int offsetX {0}; 0076 int offsetY {0}; 0077 int maximumOffsetX {0}; 0078 int maximumOffsetY {0}; 0079 bool isRandomOffsetX {false}; 0080 bool isRandomOffsetY {false}; 0081 TexturingMode texturingMode {MULTIPLY}; 0082 int cutOffPolicy {0}; 0083 int cutOffLeft {0}; 0084 int cutOffRight {255}; 0085 bool invert {false}; 0086 0087 bool read(const KisPropertiesConfiguration *setting); 0088 void write(KisPropertiesConfiguration *setting) const; 0089 0090 KisPaintopLodLimitations lodLimitations() const; 0091 }; 0092 0093 0094 #endif // KISTEXTUREOPTIONDATA_H