Krita Source Code Documentation
Loading...
Searching...
No Matches
KisDodgeShadowsAdjustment< _channel_type_, traits > Class Template Reference
+ Inheritance diagram for KisDodgeShadowsAdjustment< _channel_type_, traits >:

Public Member Functions

 KisDodgeShadowsAdjustment ()
 
int parameterId (const QString &name) const override
 
QList< QString > parameters () const override
 
void setParameter (int id, const QVariant &parameter) override
 
void transform (const quint8 *srcU8, quint8 *dstU8, qint32 nPixels) const override
 
- Public Member Functions inherited from KoColorTransformation
virtual bool isValid () const
 
void setParameters (const QHash< QString, QVariant > &parameters)
 
virtual ~KoColorTransformation ()
 

Private Types

typedef RGBTrait::Pixel RGBPixel
 
typedef traits RGBTrait
 

Private Attributes

float exposure {0.0f}
 

Detailed Description

template<typename _channel_type_, typename traits>
class KisDodgeShadowsAdjustment< _channel_type_, traits >

Definition at line 24 of file kis_dodgeshadows_adjustment.cpp.

Member Typedef Documentation

◆ RGBPixel

template<typename _channel_type_ , typename traits >
typedef RGBTrait::Pixel KisDodgeShadowsAdjustment< _channel_type_, traits >::RGBPixel
private

Definition at line 27 of file kis_dodgeshadows_adjustment.cpp.

◆ RGBTrait

template<typename _channel_type_ , typename traits >
typedef traits KisDodgeShadowsAdjustment< _channel_type_, traits >::RGBTrait
private

Definition at line 26 of file kis_dodgeshadows_adjustment.cpp.

Constructor & Destructor Documentation

◆ KisDodgeShadowsAdjustment()

template<typename _channel_type_ , typename traits >
KisDodgeShadowsAdjustment< _channel_type_, traits >::KisDodgeShadowsAdjustment ( )
inline

Definition at line 30 of file kis_dodgeshadows_adjustment.cpp.

30{}

Member Function Documentation

◆ parameterId()

template<typename _channel_type_ , typename traits >
int KisDodgeShadowsAdjustment< _channel_type_, traits >::parameterId ( const QString & name) const
inlineoverridevirtual

Get the parameter id for a parameter name

Reimplemented from KoColorTransformation.

Definition at line 66 of file kis_dodgeshadows_adjustment.cpp.

67 {
68 if (name == "exposure")
69 return 0;
70 return -1;
71 }

◆ parameters()

template<typename _channel_type_ , typename traits >
QList< QString > KisDodgeShadowsAdjustment< _channel_type_, traits >::parameters ( ) const
inlineoverridevirtual
Returns
the list of parameters

Reimplemented from KoColorTransformation.

Definition at line 59 of file kis_dodgeshadows_adjustment.cpp.

60 {
61 QList<QString> list;
62 list << "exposure";
63 return list;
64 }

◆ setParameter()

template<typename _channel_type_ , typename traits >
void KisDodgeShadowsAdjustment< _channel_type_, traits >::setParameter ( int id,
const QVariant & parameter )
inlineoverridevirtual

Update one parameter of a cached transformation object.

Reimplemented from KoColorTransformation.

Definition at line 73 of file kis_dodgeshadows_adjustment.cpp.

74 {
75 switch(id)
76 {
77 case 0:
78 exposure = parameter.toDouble();
79 break;
80 default:
81 ;
82 }
83 }

References KisDodgeShadowsAdjustment< _channel_type_, traits >::exposure.

◆ transform()

template<typename _channel_type_ , typename traits >
void KisDodgeShadowsAdjustment< _channel_type_, traits >::transform ( const quint8 * src,
quint8 * dst,
qint32 nPixels ) const
inlineoverridevirtual

This function apply the transformation on a given number of pixels.

Parameters
srca pointer to the source pixels
dsta pointer to the destination pixels
nPixelsthe number of pixels

This function may or may not be thread safe. You need to create one KoColorTransformation per thread.

Implements KoColorTransformation.

Definition at line 32 of file kis_dodgeshadows_adjustment.cpp.

33 {
34 const RGBPixel* src = reinterpret_cast<const RGBPixel*>(srcU8);
35 RGBPixel* dst = reinterpret_cast<RGBPixel*>(dstU8);
36 float value_red, value_green, value_blue, new_value_red, new_value_green, new_value_blue;
37 const float factor(exposure * 0.333333);
38 while (nPixels > 0) {
39
43
44 new_value_red = factor + value_red - factor * value_red;
45 new_value_green = factor + value_green - factor * value_green;
46 new_value_blue = factor + value_blue - factor * value_blue;
47
49 dst->green = KoColorSpaceMaths< float, _channel_type_ >::scaleToA(new_value_green);
51 dst->alpha = src->alpha;
52
53 --nPixels;
54 ++src;
55 ++dst;
56 }
57 }
static _Tdst scaleToA(_T a)

References KisDodgeShadowsAdjustment< _channel_type_, traits >::exposure, and KoColorSpaceMaths< _T, _Tdst >::scaleToA().

Member Data Documentation

◆ exposure

template<typename _channel_type_ , typename traits >
float KisDodgeShadowsAdjustment< _channel_type_, traits >::exposure {0.0f}
private

Definition at line 86 of file kis_dodgeshadows_adjustment.cpp.

86{0.0f};

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