Krita Source Code Documentation
Loading...
Searching...
No Matches
KisBrushOpResources.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2017 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
8
9#include "kis_brush.h"
10
11#include <KoColorSpace.h>
13
14#include "kis_color_source.h"
16#include "KisSharpnessOption.h"
17#include "KisStandardOptions.h"
18#include "KisDarkenOption.h"
19#include "KisHSVOption.h"
20#include "kis_texture_option.h"
21#include "kis_painter.h"
23
37
38
40 : m_d(new Private(settings.data()))
41{
42 KisColorSourceOption colorSourceOption(settings.data());
43 colorSource.reset(colorSourceOption.createColorSource(painter));
44
45 sharpnessOption.reset(new KisSharpnessOption(settings.data()));
46
47 textureOption.reset(new KisTextureOption(settings.data(),
48 settings->resourcesInterface(),
49 settings->canvasResourcesInterface(),
52
53 m_d->hsvOptions.append(KisHSVOption::createHueOption(settings.data()));
54 m_d->hsvOptions.append(KisHSVOption::createSaturationOption(settings.data()));
55 m_d->hsvOptions.append(KisHSVOption::createValueOption(settings.data()));
56
57 Q_FOREACH (KisHSVOption *option, m_d->hsvOptions) {
58 if (option->isChecked() && !m_d->hsvTransformation) {
59 m_d->hsvTransformation = painter->backgroundColor().colorSpace()->createColorTransformation("hsv_adjustment", QHash<QString, QVariant>());
60 }
61 }
62
63 // the brush should be initialized explicitly by the caller later
65}
66
68{
69 qDeleteAll(m_d->hsvOptions);
70 delete m_d->hsvTransformation;
71}
72
74{
75 colorSource->selectColor(m_d->mixOption.apply(info), info);
76 m_d->darkenOption.apply(colorSource.data(), info);
77
78 if (m_d->hsvTransformation) {
79 Q_FOREACH (KisHSVOption * option, m_d->hsvOptions) {
80 option->apply(m_d->hsvTransformation, info);
81 }
82 colorSource->applyColorTransformation(m_d->hsvTransformation);
83 }
84
86}
@ SupportsGradientMode
@ SupportsLightnessMode
KisBrushOpResources(const KisPaintOpSettingsSP settings, KisPainter *painter)
const QScopedPointer< Private > m_d
void syncResourcesToSeqNo(int seqNo, const KisPaintInformation &info) override
KisColorSource * createColorSource(const KisPainter *_painter) const
bool isChecked() const
virtual int currentLevelOfDetail() const =0
static KisHSVOption * createSaturationOption(const KisPropertiesConfiguration *setting)
void apply(KoColorTransformation *transfo, const KisPaintInformation &info) const
static KisHSVOption * createValueOption(const KisPropertiesConfiguration *setting)
static KisHSVOption * createHueOption(const KisPropertiesConfiguration *setting)
KisDefaultBoundsBaseSP defaultBounds() const
KisPaintDeviceSP device
KoColor backgroundColor
KoColorTransformation * createColorTransformation(const QString &id, const QHash< QString, QVariant > &parameters) const
const KoColorSpace * colorSpace() const
return the current colorSpace
Definition KoColor.h:82
#define KIS_SAFE_ASSERT_RECOVER_NOOP(cond)
Definition kis_assert.h:130
QList< KisHSVOption * > hsvOptions
Private(const KisPaintOpSettings *setting)
KoColorTransformation * hsvTransformation
QScopedPointer< KisColorSource > colorSource
QScopedPointer< KisSharpnessOption > sharpnessOption
virtual void syncResourcesToSeqNo(int seqNo, const KisPaintInformation &info)
QScopedPointer< KisTextureOption > textureOption