Krita Source Code Documentation
Loading...
Searching...
No Matches
KisTextureOptionData.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2022 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
7
10
12{
13 textureData.read(setting);
14
15 isEnabled = setting->getBool("Texture/Pattern/Enabled", false);
16 scale = setting->getDouble("Texture/Pattern/Scale", 1.0);
17 brightness = setting->getDouble("Texture/Pattern/Brightness");
18 contrast = setting->getDouble("Texture/Pattern/Contrast", 1.0);
19 neutralPoint = setting->getDouble("Texture/Pattern/NeutralPoint", 0.5);
20 offsetX = setting->getInt("Texture/Pattern/OffsetX");
21 offsetY = setting->getInt("Texture/Pattern/OffsetY");
22 isRandomOffsetX = setting->getBool("Texture/Pattern/isRandomOffsetX");
23 isRandomOffsetY = setting->getBool("Texture/Pattern/isRandomOffsetY");
24 texturingMode = static_cast<TexturingMode>(setting->getInt("Texture/Pattern/TexturingMode", MULTIPLY));
25 useSoftTexturing = setting->getBool("Texture/Pattern/UseSoftTexturing");
26 cutOffPolicy = setting->getInt("Texture/Pattern/CutoffPolicy");
27 cutOffLeft = setting->getInt("Texture/Pattern/CutoffLeft", 0);
28 cutOffRight = setting->getInt("Texture/Pattern/CutoffRight", 255);
29 invert = setting->getBool("Texture/Pattern/Invert");
30 autoInvertOnErase = setting->getBool("Texture/Pattern/AutoInvertOnErase");
31
32 // TODO: we use a hack here and explicitly do not load MaximumOffsetX/Y
33 // here, since they are updated by the model when a pattern is loaded.
34 // This is a bad design, we should convert these members into a lager's
35 // reader in the model and let the values to be calculated on the fly.
36
37 return true;
38}
39
41{
42 if (!isEnabled) return;
43
44 textureData.write(setting);
45 setting->setProperty("Texture/Pattern/Enabled", isEnabled);
46 setting->setProperty("Texture/Pattern/Scale", scale);
47 setting->setProperty("Texture/Pattern/Brightness", brightness);
48 setting->setProperty("Texture/Pattern/Contrast", contrast);
49 setting->setProperty("Texture/Pattern/NeutralPoint", neutralPoint);
50 setting->setProperty("Texture/Pattern/OffsetX", offsetX);
51 setting->setProperty("Texture/Pattern/OffsetY", offsetY);
52 setting->setProperty("Texture/Pattern/TexturingMode", texturingMode);
53 setting->setProperty("Texture/Pattern/UseSoftTexturing", useSoftTexturing);
54 setting->setProperty("Texture/Pattern/CutoffLeft", cutOffLeft);
55 setting->setProperty("Texture/Pattern/CutoffRight", cutOffRight);
56 setting->setProperty("Texture/Pattern/CutoffPolicy", cutOffPolicy);
57 setting->setProperty("Texture/Pattern/Invert", invert);
58 setting->setProperty("Texture/Pattern/AutoInvertOnErase", autoInvertOnErase);
59 setting->setProperty("Texture/Pattern/isRandomOffsetX", isRandomOffsetX);
60 setting->setProperty("Texture/Pattern/isRandomOffsetY", isRandomOffsetY);
61}
62
64{
66 if (isEnabled) {
67 l.limitations << KoID("texture-pattern", i18nc("PaintOp instant preview limitation", "Texture->Pattern (low quality preview)"));
68 }
69 return l;
70}
void write(KisPropertiesConfiguration *setting) const
bool read(const KisPropertiesConfiguration *setting)
Definition KoID.h:30
virtual void setProperty(const QString &name, const QVariant &value)
bool getBool(const QString &name, bool def=false) const
int getInt(const QString &name, int def=0) const
double getDouble(const QString &name, double def=0.0) const
bool read(const KisPropertiesConfiguration *setting)
KisPaintopLodLimitations lodLimitations() const
KisEmbeddedTextureData textureData
void write(KisPropertiesConfiguration *setting) const