Krita Source Code Documentation
Loading...
Searching...
No Matches
KisDarkenOption Class Reference

#include <KisDarkenOption.h>

+ Inheritance diagram for KisDarkenOption:

Public Member Functions

void apply (KisColorSource *colorSource, const KisPaintInformation &info) const
 
KoColor apply (KisPainter *painter, const KisPaintInformation &info) const
 
 KisDarkenOption (const KisPropertiesConfiguration *setting)
 
- Public Member Functions inherited from KisCurveOption
qreal computeRotationLikeValue (const KisPaintInformation &info, qreal baseValue, bool absoluteAxesFlipped, qreal scalingPartCoeff, bool disableScalingPart) const
 
qreal computeSizeLikeValue (const KisPaintInformation &info, bool useStrengthValue=true) const
 
ValueComponents computeValueComponents (const KisPaintInformation &info, bool useStrengthValue) const
 
bool isChecked () const
 
bool isRandom () const
 
 KisCurveOption (const KisCurveOptionData &data)
 
 KisCurveOption (KisCurveOption &)=delete
 
KisCurveOptionoperator= (KisCurveOption &)=delete
 
qreal strengthMaxValue () const
 
qreal strengthMinValue () const
 
qreal strengthValue () const
 

Detailed Description

Definition at line 16 of file KisDarkenOption.h.

Constructor & Destructor Documentation

◆ KisDarkenOption()

KisDarkenOption::KisDarkenOption ( const KisPropertiesConfiguration * setting)

Definition at line 22 of file KisDarkenOption.cpp.

23 : KisCurveOption(kpou::loadOptionData<KisDarkenOptionData>(setting))
24{
25}
KisCurveOption(const KisCurveOptionData &data)

Member Function Documentation

◆ apply() [1/2]

void KisDarkenOption::apply ( KisColorSource * colorSource,
const KisPaintInformation & info ) const

Definition at line 48 of file KisDarkenOption.cpp.

49{
50 if (!isChecked()) return;
51
52 // Darken docs aren't really clear about what exactly the amount param can have as value...
53 quint32 darkenAmount = (qint32)(255 - 255 * computeSizeLikeValue(info));
54
55 KoColorTransformation* darkenTransformation = colorSource->colorSpace()->createDarkenAdjustment(darkenAmount, false, 0.0);
56 if (!darkenTransformation) return;
57 colorSource->applyColorTransformation(darkenTransformation);
58
59 delete darkenTransformation;
60}
virtual void applyColorTransformation(const KoColorTransformation *transfo)=0
virtual const KoColorSpace * colorSpace() const =0
bool isChecked() const
qreal computeSizeLikeValue(const KisPaintInformation &info, bool useStrengthValue=true) const
virtual KoColorTransformation * createDarkenAdjustment(qint32 shade, bool compensate, qreal compensation) const =0

References KisColorSource::applyColorTransformation(), KisColorSource::colorSpace(), KisCurveOption::computeSizeLikeValue(), KoColorSpace::createDarkenAdjustment(), and KisCurveOption::isChecked().

◆ apply() [2/2]

KoColor KisDarkenOption::apply ( KisPainter * painter,
const KisPaintInformation & info ) const

Definition at line 27 of file KisDarkenOption.cpp.

28{
29 if (!isChecked()) {
30 return painter->paintColor();
31 }
32
33 KoColor darkened = painter->paintColor();
34 KoColor origColor = darkened;
35
36 // Darken docs aren't really clear about what exactly the amount param can have as value...
37 quint32 darkenAmount = (qint32)(255 - 255 * computeSizeLikeValue(info));
38
39 KoColorTransformation* darkenTransformation = darkened.colorSpace()->createDarkenAdjustment(darkenAmount, false, 0.0);
40 if (!darkenTransformation) return origColor;
41 darkenTransformation ->transform(painter->paintColor().data(), darkened.data(), 1);
42 painter->setPaintColor(darkened);
43 delete darkenTransformation;
44
45 return origColor;
46}
KoColor paintColor
void setPaintColor(const KoColor &color)
virtual void transform(const quint8 *src, quint8 *dst, qint32 nPixels) const =0
quint8 * data()
Definition KoColor.h:144
const KoColorSpace * colorSpace() const
return the current colorSpace
Definition KoColor.h:82

References KoColor::colorSpace(), KisCurveOption::computeSizeLikeValue(), KoColorSpace::createDarkenAdjustment(), KoColor::data(), KisCurveOption::isChecked(), KisPainter::paintColor, KisPainter::setPaintColor(), and KoColorTransformation::transform().


The documentation for this class was generated from the following files: