File indexing completed on 2024-05-26 04:34:08
0001 /* 0002 * SPDX-FileCopyrightText: 2022 Dmitry Kazakov <dimula73@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 #include "KisTextureOptionData.h" 0007 0008 #include <kis_properties_configuration.h> 0009 #include <kis_paintop_lod_limitations.h> 0010 0011 bool KisTextureOptionData::read(const KisPropertiesConfiguration *setting) 0012 { 0013 textureData.read(setting); 0014 0015 isEnabled = setting->getBool("Texture/Pattern/Enabled", false); 0016 scale = setting->getDouble("Texture/Pattern/Scale", 1.0); 0017 brightness = setting->getDouble("Texture/Pattern/Brightness"); 0018 contrast = setting->getDouble("Texture/Pattern/Contrast", 1.0); 0019 neutralPoint = setting->getDouble("Texture/Pattern/NeutralPoint", 0.5); 0020 offsetX = setting->getInt("Texture/Pattern/OffsetX"); 0021 offsetY = setting->getInt("Texture/Pattern/OffsetY"); 0022 isRandomOffsetX = setting->getBool("Texture/Pattern/isRandomOffsetX"); 0023 isRandomOffsetY = setting->getBool("Texture/Pattern/isRandomOffsetY"); 0024 maximumOffsetX = setting->getInt("Texture/Pattern/MaximumOffsetX"); 0025 maximumOffsetY = setting->getInt("Texture/Pattern/MaximumOffsetY"); 0026 texturingMode = static_cast<TexturingMode>(setting->getInt("Texture/Pattern/TexturingMode", MULTIPLY)); 0027 cutOffPolicy = setting->getInt("Texture/Pattern/CutoffPolicy"); 0028 cutOffLeft = setting->getInt("Texture/Pattern/CutoffLeft", 0); 0029 cutOffRight = setting->getInt("Texture/Pattern/CutoffRight", 255); 0030 invert = setting->getBool("Texture/Pattern/Invert"); 0031 0032 return true; 0033 } 0034 0035 void KisTextureOptionData::write(KisPropertiesConfiguration *setting) const 0036 { 0037 if (!isEnabled) return; 0038 0039 textureData.write(setting); 0040 setting->setProperty("Texture/Pattern/Enabled", isEnabled); 0041 setting->setProperty("Texture/Pattern/Scale", scale); 0042 setting->setProperty("Texture/Pattern/Brightness", brightness); 0043 setting->setProperty("Texture/Pattern/Contrast", contrast); 0044 setting->setProperty("Texture/Pattern/NeutralPoint", neutralPoint); 0045 setting->setProperty("Texture/Pattern/OffsetX", offsetX); 0046 setting->setProperty("Texture/Pattern/OffsetY", offsetY); 0047 setting->setProperty("Texture/Pattern/TexturingMode", texturingMode); 0048 setting->setProperty("Texture/Pattern/CutoffLeft", cutOffLeft); 0049 setting->setProperty("Texture/Pattern/CutoffRight", cutOffRight); 0050 setting->setProperty("Texture/Pattern/CutoffPolicy", cutOffPolicy); 0051 setting->setProperty("Texture/Pattern/Invert", invert); 0052 setting->setProperty("Texture/Pattern/MaximumOffsetX", maximumOffsetX); 0053 setting->setProperty("Texture/Pattern/MaximumOffsetY", maximumOffsetY); 0054 setting->setProperty("Texture/Pattern/isRandomOffsetX", isRandomOffsetX); 0055 setting->setProperty("Texture/Pattern/isRandomOffsetY", isRandomOffsetY); 0056 } 0057 0058 KisPaintopLodLimitations KisTextureOptionData::lodLimitations() const 0059 { 0060 KisPaintopLodLimitations l; 0061 if (isEnabled) { 0062 l.limitations << KoID("texture-pattern", i18nc("PaintOp instant preview limitation", "Texture->Pattern (low quality preview)")); 0063 } 0064 return l; 0065 }