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

Public Member Functions

 KisDodgeMidtonesAdjustment ()
 
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 KisDodgeMidtonesAdjustment< _channel_type_, traits >

Definition at line 24 of file kis_dodgemidtones_adjustment.cpp.

Member Typedef Documentation

◆ RGBPixel

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

Definition at line 27 of file kis_dodgemidtones_adjustment.cpp.

◆ RGBTrait

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

Definition at line 26 of file kis_dodgemidtones_adjustment.cpp.

Constructor & Destructor Documentation

◆ KisDodgeMidtonesAdjustment()

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

Definition at line 30 of file kis_dodgemidtones_adjustment.cpp.

30{}

Member Function Documentation

◆ parameterId()

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

Get the parameter id for a parameter name

Reimplemented from KoColorTransformation.

Definition at line 64 of file kis_dodgemidtones_adjustment.cpp.

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

◆ parameters()

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

Reimplemented from KoColorTransformation.

Definition at line 57 of file kis_dodgemidtones_adjustment.cpp.

58 {
59 QList<QString> list;
60 list << "exposure";
61 return list;
62 }

◆ setParameter()

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

Update one parameter of a cached transformation object.

Reimplemented from KoColorTransformation.

Definition at line 71 of file kis_dodgemidtones_adjustment.cpp.

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

References KisDodgeMidtonesAdjustment< _channel_type_, traits >::exposure.

◆ transform()

template<typename _channel_type_ , typename traits >
void KisDodgeMidtonesAdjustment< _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 34 of file kis_dodgemidtones_adjustment.cpp.

35 {
36 const RGBPixel* src = reinterpret_cast<const RGBPixel*>(srcU8);
37 RGBPixel* dst = reinterpret_cast<RGBPixel*>(dstU8);
38 float value_red, value_green, value_blue;
39 const float factor(1.0/(1.0 + exposure));
40 while(nPixels > 0) {
41
42 value_red = pow((float)KoColorSpaceMaths<_channel_type_, float>::scaleToA(src->red), factor);
43 value_green = pow((float)KoColorSpaceMaths<_channel_type_, float>::scaleToA(src->green), factor);
44 value_blue = pow((float)KoColorSpaceMaths<_channel_type_, float>::scaleToA(src->blue), factor);
45
49 dst->alpha = src->alpha;
50
51 --nPixels;
52 ++src;
53 ++dst;
54 }
55 }
static _Tdst scaleToA(_T a)

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

Member Data Documentation

◆ exposure

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

Definition at line 84 of file kis_dodgemidtones_adjustment.cpp.

84{0.0f};

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